Part Number Hot Search : 
0SC51 B3943 TGH10A M4004 KG406O T431C02S T431C02S TC40192
Product Description
Full Text Search
 

To Download ISD-200 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
 3URGXFW 'DWD 6KHHW
,6' $6,&
,6'
3DUW QXPEHU
Revision 2.0
June 15, 2000 Copyright 2000 - In-System Design, Inc.
Notice:
In-System Design assumes no liability whatsoever for errors and omissions in this document. In-System Design reserves the right to make changes at any time, without notice. Please confirm that this document revision is current.
ISD-200 ASIC Datasheet
Table of Contents
TABLE OF CONTENTS .............................................................................................................................. I TABLE OF TABLES ................................................................................................................................. IV TABLE OF FIGURES .................................................................................................................................V DOCUMENT REVISION HISTORY ........................................................................................................ 6 PIN INFORMATION .................................................................................................................................. 7 OVERVIEW ............................................................................................................................................... 10 INTRODUCTION ...................................................................................................................................... 11 ISD-200 CONFIGURATION .................................................................................................................... 11 ISD-200 CONFIGURATION DATA AND USB DESCRIPTOR SOURCES.......................................................... 11 Internal ROM Contents ........................................................................................................................ 12 Serial ROM Interface ........................................................................................................................... 12 Vendor-Specific Identify (FBh) Data ................................................................................................... 12 ISD-200 CONFIGURATION/USB DESCRIPTOR DATA FORMATTING........................................................... 13 ISD-200 Configuration Data ................................................................................................................ 13 Valid Configuration Byte Settings........................................................................................................ 15 USB INTERFACE...................................................................................................................................... 16 DESCRIPTOR REQUIREMENTS .................................................................................................................... 16 Configuration Descriptors .................................................................................................................... 16 String Descriptor Indexes ..................................................................................................................... 16 Descriptor Override .............................................................................................................................. 17 PIPES ......................................................................................................................................................... 17 Default Control Pipe............................................................................................................................. 17 Bulk Out Pipe ....................................................................................................................................... 17 Bulk In Pipe.......................................................................................................................................... 17 Interrupt Pipe........................................................................................................................................ 17 REQUESTS ................................................................................................................................................. 17 Standard Requests ................................................................................................................................ 17 Mass Storage Class Bulk-Only Requests.............................................................................................. 17 Vendor-Specific Requests .................................................................................................................... 18 DESCRIPTORS ............................................................................................................................................ 19 Supported Descriptors .......................................................................................................................... 19 Descriptor Data Format ........................................................................................................................ 20 ATA/ATAPI INTERFACE........................................................................................................................ 26 PROTOCOL................................................................................................................................................. 26 RESET MAPPING........................................................................................................................................ 26 DEVICE REQUIREMENTS............................................................................................................................ 27 ATA Power Supplied from the USB Bus ............................................................................................. 27 ATA Reset, A1h, FBh .......................................................................................................................... 27 ATA Polling Device ............................................................................................................................. 27 ISD-200 ATA Bus State During Idle.................................................................................................... 27 ATA PIO Support................................................................................................................................. 27 ATA INITIALIZATION TIMEOUT ................................................................................................................ 27 DEVICE INITIALIZATION SEQUENCE .......................................................................................................... 28
In-System Design Confidential
i
ISD-200 ASIC Datasheet ATA COMMAND BLOCK ........................................................................................................................... 31 Field Descriptions................................................................................................................................. 31 ATA COMMAND FLOW ............................................................................................................................. 33 VENDOR-SPECIFIC ATA COMMANDS........................................................................................................ 35 POWER MANAGEMENT........................................................................................................................ 38 BUS_POWER Pin ................................................................................................................................ 38 NPWR500, and NPWR100 Pins .......................................................................................................... 38 Selectable Device Power Configurations ............................................................................................. 39 OPERATIONAL MODES......................................................................................................................... 42 NEJECT & NCART_DET PINS ............................................................................................................... 42 I_MODE PIN ............................................................................................................................................ 42 ATA_EN PIN............................................................................................................................................ 42 TEST MODE PINS....................................................................................................................................... 42 Test Pin Pull-downs.............................................................................................................................. 43 Normal Mode With CLKN Enabled..................................................................................................... 43 Disable Disk Mode ............................................................................................................................... 43 NandTree Test Mode............................................................................................................................ 43 Limbo Mode ......................................................................................................................................... 43 EXTERNAL CIRCUITRY........................................................................................................................ 44 EXTERNAL COMPONENTS CONNECTION.................................................................................................... 44 IORDY HOOKUP ...................................................................................................................................... 44 PDIAG AND PDASP HOOKUP .................................................................................................................. 45 ABSOLUTE MAXIMUM RATINGS....................................................................................................... 45 ELECTRICAL CHARACTERISTICS .................................................................................................... 45 VOLTAGE PARAMETER.............................................................................................................................. 45 CURRENT PARAMETER .............................................................................................................................. 46 TIMING CHARACTERISTICS............................................................................................................... 46 I2C MEMORY DEVICE INTERFACE TIMING ................................................................................................ 46 USB TRANSCEIVER TIMING CHARACTERISTICS........................................................................................ 47 ATA/ATAPI PORT TIMING CHARACTERISTICS ........................................................................................ 47 CLOCK....................................................................................................................................................... 47 RESET........................................................................................................................................................ 47 PHYSICAL DIAGRAMS .......................................................................................................................... 48 DEVICE ERRATA FOR FIRST SILICON ISD-200 "0002" ................................................................. 49 1. CLKN OUTPUT MAY INITIALIZE WITH UNKNOWN FREQUENCY WITH ASIC IN RESET............................ 49 2. ATA_EN INTERNAL PULL-UP RESISTOR IS DISABLED DURING USB SUSPEND OPERATION .................... 49 3. EEPROM WRITE OPERATION FAILS ON LAST BYTE OF LAST PAGE WITH SOME EEPROM DEVICES....... 49 4. SCL OUTPUT DOES NOT 3-STATE TO HI-Z WHEN `1', LIMITING SCL VHI VOLTAGE TO 3.3V................. 49 5. CURRENT DRAW OF 5-6 MA WHEN ATA_EN = 0 ................................................................................. 50 6. USB BUS POWERED SYSTEM SUPPORT NOT POSSIBLE WITH ISD-200 FIRST SILICON. ............................ 50 7. USB INTERRUPT PIPE SUPPORT REQUIRED FOR MAC OS DRIVERS / APPLICATIONS ............................... 50 8. SUPPORT NOT PROVIDED FOR 16 BYTE ATAPI COMMAND BLOCK TRANSFERS...................................... 50 9. CLKN DOES NOT GET THE CORRECT FREQUENCY IN ALL CASES ........................................................... 50 10. FAILURE TO OVERRIDE DESCRIPTORS FOR SLAVE DEVICE WHEN BSY=0 AND DRQ=1. ...................... 50 11. POSSIBLE HANG IN ATACB FUNCTIONALITY. ..................................................................................... 51 DEVICE ERRATA FOR SECOND SILICON ISD-200 "0003" ............................................................ 52
ii
In-System Design Confidential
ISD-200 ASIC Datasheet 100. NATA_RESET, NDIOR, AND NDIOW ALLOW PARASITIC CURRENT DRAW DURING SUSPEND........... 52 101. CLKN DOES NOT GET THE CORRECT FREQUENCY IN ALL CASES........................................................ 52 102. FAILURE TO OVERRIDE DESCRIPTORS FOR SLAVE DEVICE WHEN BSY=0 AND DRQ=1...................... 53 103. POSSIBLE HANG IN ATACB FUNCTIONALITY. ................................................................................... 54
In-System Design Confidential
iii
ISD-200 ASIC Datasheet
Table of Tables
Table 1 - Pin Descriptions ............................................................................................................................. 9 Table 2 - ISD-200 Configuration and Descriptor Sources........................................................................... 12 Table 3 - ISD-200 Configuration Bytes....................................................................................................... 15 Table 4 - Valid Configuration Byte Settings ............................................................................................... 16 Table 5 - Mass Storage Class Bulk-Only Requests ..................................................................................... 18 Table 6 - Vendor-Specific Requests ............................................................................................................ 18 Table 7- Device Descriptor.......................................................................................................................... 21 Table 8 - Configuration Descriptor(s).......................................................................................................... 22 Table 9 - Interface Descriptor ...................................................................................................................... 23 Table 10 - String Locations.......................................................................................................................... 23 Table 11 - String Descriptors....................................................................................................................... 26 Table 12 - ATA Command Block Formatting ............................................................................................. 31 Table 14 - Vendor-Specific ATA Commands ............................................................................................. 35 Table 13 - Test Modes ................................................................................................................................. 43 Table 15 - Absolute Maximum Ratings ....................................................................................................... 45 Table 16 - DC Characteristics...................................................................................................................... 45 Table 17 - Power Supply Current ................................................................................................................ 46 Table 18 - I2C Memory Device Interface Timing ........................................................................................ 46 Table 19 - Clock Requirements ................................................................................................................... 47 Table 20 - Example Serial ROM / FBh Data ............................................................................................... 62
iv
In-System Design Confidential
ISD-200 ASIC Datasheet
Table of Figures
Figure 1 - Pin Layout ..................................................................................................................................... 7 Figure 2 - ATA Reset Protocol .................................................................................................................... 28 Figure 3 - Full Device Initialization Sequence ............................................................................................ 30 Figure 4 - ATA Command Block Flow Diagram ........................................................................................ 34 Figure 5 - Configuration Sequence .............................................................................................................. 41 Figure 6 - External Components Connection............................................................................................... 44 Figure 7 - IORDY Hookup .......................................................................................................................... 44 Figure 8 - I2C Memory Device Interface Timing......................................................................................... 46 Figure 9 - Package Outline Diagram............................................................................................................ 48
In-System Design Confidential
v
ISD-200 ASIC Datasheet
Document Revision History
Title Company Initial Revision # Creation Date/Time Revision 1.0 1.1 1.2 1.3 ISD-200 ASIC Datasheet In-System Design Inc. Boise, ID. 1.0 March 13, 2000 Comments Initial Production Revision Addition of ATA_EN mode current Removed reference to 16 byte ATAPI command block support Added length restriction to USB string descriptors Added text to indicate a serial number string descriptor is required for MSC compliance Fixed READ/LOAD_CONFIG parameter descriptions. Added Internal ROM values to ISD-200 Configuration table. Changed description of some ISD-200 Configuration bits. Restructured the outline to avoid conflicting statements and redundancy. Fixed Table of Tables and Table of Figures Cleaned up and added text on the BUS_POWER pin and related issues. Made suggested enhancements from review in text. Several references clarified. First silicon "Rev A" references changed to "first silicon" (ISD-200 "0002" or F731727). Second silicon "Rev B" references changed to "second silicon" (ISD-200 "0003" or F731727A). Clarify First & Second silicon differences in power management section. Added Second silicon errata. Fixed some typographical errors. Clarified I_MODE references. Fixed several references for consistency. Fixed some ATACB descriptions. Added more errata.
Date March 13, 2000 March 15, 2000 March 17, 2000 March 22, 2000 April 4, 2000 April 10, 2000 April 26, 2000
1.4 1.5
1.6 1.7
April 28, 2000 May 25, 2000
1.8
June 13, 2000
1.9 2.0
June 15, 2000 June 29, 2000
6
In-System Design Confidential
ISD-200 ASIC Datasheet
Pin Information
IORDY_PU_EN
BUS_POWER
USB_ENUM
SCAN_EN
I_MODE
VDD33
VDD18
VDD33
DMNS
CLKN
DPLS
SDA
VSS
VSS
IORDY NCS0 NCS1 VDD33 DA2 DA0 DA1 NDIOR VSS NDIOW VDD18 DD15 VSS DD0 DD14 DD1
48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 49 32 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 1 2 3 4 5 6 7 8 9 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 10 11 12 13 14 15 16
LED
SCL
VDD18 TEST0 TEST1 PWR500 TEST2 TEST3 VSS CLK12 CLKX VDD33 PWR100 NEJECT NCART_DET NRESET ATA_EN VSS
DD13
DD12
VDD33
DD11
DD10
VSS
DD2
DD3
DD4
DD5
DD9
DD6
VDD18
DD8
DD7
Figure 1 - Pin Layout
In-System Design Confidential
NATA_RESET
7
ISD-200 ASIC Datasheet
Pin Name
NRESET CLK12, CLKX TEST0 - TEST3 SCAN_EN I_MODE
TQFP Pin #
19 25, 24 31, 30, 28, 27 35 39
Dir
I IO I I I
Type
TTL 3.3V OSC in/out TTL 3.3V, pull down TTL 3.3V, pull down TTL 3.3V
Description
Active low Chip Reset Crystal connections. 1.8V tolerant only Test mode inputs. 100K internal pull down resistors on TEST(2:0) Manufacturing test pin. Scan mode select input. 100K internal pull down resistor. USB descriptor and ISD-200 configuration data is obtained from the device by the vendor-specific ATAPI (FBh) command. If set (I_MODE=1) and USB Bus powered (BUS_POWER=1), the device must be able to respond to the FBh ATAPI command when nPWR100 is active. I_MODE operation is not supported in USB Bus powered systems that require more than 100mA of current prior to USB enumeration. Configurable clock output. A digital phase lock loop provides a configurable clock source for system integration. (See Errata #1) Active low media eject request input Active low Cartridge (media) detected input. ATA interface / USB enable. Allows ATA bus sharing with other host devices. ATA_EN=1 to enable ATA interface. ATA_EN=0 to 3-state to hi-Z ATA interface, disable USB interface. 100K internal pull up resistor (See Errata #2, #5)
CLKN
40
O
4 mA TTL 3.3V
NEJECT NCART_DET ATA_EN
21 20 18
I I I
TTL 3.3V TTL 3.3V TTL 3.3V, pull up
DA0 - DA2 DD0 - DD15
54, 55, 53 62, 64, 2, 5, 7, 10, 12, 15, 14, 11, 8, 6, 3, 1, 63, 60 56 58 50, 51 49 48 16 38 37 29
O IO
4 mA TTL 5V Fail Safe 4 mA TTL 5V Fail Safe
ATA Address. ATA66 compliant IO cell. ATA Data. ATA66 compliant IO cell.
NDIOR NDIOW NCS0, NCS1 IORDY IORDY_PU_EN NATA_RESET SCL SDA NPWR500
O O O I O O O IO O
4 mA TTL 5V Fail Safe 4 mA TTL 5V Fail Safe 4 mA TTL 5V Fail Safe TTL 5V Fail Safe 4 mA TTL 5V Fail Safe 4 mA TTL 5V Fail Safe 4 mA TTL 5V tolerant 4 mA TTL 5V tolerant 4 mA TTL 3.3V
ATA Read Strobe. ATA66 compliant IO cell. ATA Write Strobe. ATA66 compliant IO cell. ATA Chip Selects. ATA66 compliant IO cell. ATA Flow Control. ATA66 compliant IO cell. ATA IORDY pull-up connection. Active hi, 3state to hi-Z off. ATA66 compliant IO cell. ATA pin Reset. ATA66 compliant IO cell. Configuration serial ROM clock. Active low, 3state to hi-Z off. (See Errata #4) Configuration serial ROM address/data. Active low, 3-state to hi-Z off. Indicates host has enabled use of USB Bus power (USB configuration set to a value other than 0) up to the requested amount in the USB descriptor bMaxPower entry. USB Bus powered devices must condition power circuitry with the state of the BUS_POWER signal for correct operation. Active low, 3-state to hi-Z off
8
In-System Design Confidential
ISD-200 ASIC Datasheet Pin Name
DPLS, DMNS USB_ENUM
TQFP Pin #
44, 43 46
Dir
IO O
Type
USB Transceiver 4 mA TTL 3.3V
Description
USB differential data USB enumeration control. Power source / sink for 1.5K pull-up resistor on USB Bus DPLS signal. USB status led control output. Flashes if the USB configuration is set to 0, on solid if USB configuration is set other than 0, and off if USB Bus is suspended. Active low, 3-state to hi-Z off Indicates USB Bus can supply the lesser value of 100 mA or the USB Descriptor bMaxPower entry. USB BUS powered devices must condition power circuitry with the state of the BUS_POWER signal for correct operation. Active hi, 3-state to hi-Z off Indicates the source of the ATA / ATAPI device power. (See Errata #6) BUS_POWER=1 indicates USB Bus powered. BUS_POWER=0 indicates self power. 100K internal pull up resistor
LED
33
O
12 mA TTL 3.3V
NPWR100
22
O
4 mA TTL 3.3V
BUS_POWER
41
I
TTL, pull up
VDD18 VDD33 VSS
13, 32, 36, 59 4, 23, 47, 52 9, 17, 26, 34, 42, 45, 57, 61
1.8V Core supply 3.3V IO ring supply Ground
Table 1 - Pin Descriptions
In-System Design Confidential
9
ISD-200 ASIC Datasheet
Overview
* * * USB Mass Storage Class Bulk-Only Specification Compliant (Version 1.0 RC) Command Queuing Hooks In Hardware To Allow Near Theoretical USB Data Transfer Rates (12 Mb/sec) USB Version 1.1 Compliant * * USB Suspend / Resume Support USB Remote Wakeup Support
Integrated USB Transceivers Two Power Source Modes of Operation USB Bus Powered Self Powered Dynamic (USB Bus or Self Powered) Support with USB Bus Power Capabilities Output Pins
*
Flexible USB Descriptor and ISD-200 Configuration Retrieval Source I2C Serial ROM Interface ATA Interface Using Vendor Specific ATA Command (FBh Implemented on ATAPI or ATA Device) Default On-Chip ROM Contents Support for two Configuration Descriptors for Dynamic (USB Bus or Self) powered applications
* * * *
Large 32K Byte Data Buffer Maximizes ATA / ATAPI Data Transfer Rate ATA Interface Supports ATA Modes 0, 1, And 2 Of Operation IORDY Support Event Notification Via Vendor Specific ATA Command Input Pins For Media Cartridge Detection And Ejection Request Vendor Specific ATA Command For Event Notification Is Configurable USB Remote Wakeup Support
* * * * *
Multiple LUN support Full ATA Command Support By Use of Vendor Specific Command Block in the MSC Command Block Wrapper Configurable External Clock Source (DPLL) To Provide System Level Clock Provisions To Share ATA Bus With Other Hosts Uses Inexpensive 12Mhz Crystal For Clock Source
10
In-System Design Confidential
ISD-200 ASIC Datasheet
Introduction
The ISD-200 implements a bridge between one USB 1.1 (http://www.usb.org/developers/data/usbspec.zip) port and one ATA or ATAPI based mass storage device port. This bridge adheres to the Mass Storage Class Bulk-Only Transport (http://www.usb.org/developers/data/devclass/usbmassbulk_10.pdf) for ATAPI transactions. Hardware design allows ATAPI command queuing which allows data transfer rates of up to the USB theoretical maximum of 12 Mb/sec. The USB port of the ISD-200 is connected to a host computer directly or via the downstream port of a USB hub. Host software issues commands and data to the ISD-200 and receives status and data from the ISD200 using standard USB protocol. The ATA/ATAPI port of the ISD-200 is connected to a mass storage device. A large 32 Kbyte buffer maximizes ATA/ATAPI data transfer rates by minimizing losses due to device seek times. The ATA interface supports ATA PIO modes 0, 1, and 2. The device initialization process is configurable, enabling the ISD-200 to initialize most ATA/ATAPI devices without software intervention. The ISD-200 can also be configured to allow software initialization of the device if initialization requirements are not supported by ISD-200 algorithms.
ISD-200 Configuration
Certain timing parameters and operational modes in the ISD-200 are configurable and are controlled by a series of bytes, located at the beginning of the descriptor space. ISD-200 configuration data is not to be confused with the USB Configuration Descriptor.
ISD-200 Configuration Data and USB Descriptor Sources
ISD-200 configuration data and USB descriptor data in the ISD-200 can be retrieved from several sources, selected by the mode of operation at power up. This provides for maximal flexibility in configuration possibilities. There are two possible external sources for descriptor data. Table 2 indicates the method of determining which of all data sources are used. ISD-200 configuration and USB descriptor data can be supplied from an I2C serial memory device. The ISD-200 can address 4 Kbytes of serial ROM data, but USB descriptor information must be limited to 512 bytes maximum. The ISD-200 provides support for the 24LC01-16 family EEPROM interface. Alternatively, configuration and descriptor data can be supplied by an attached mass storage device through a vendor-specific Identify (FBh) command. The ISD-200 provides internal RAM (320 bytes) to hold the data. The ISD-200 also contains an on-board set of ISD-200 configuration and USB descriptors. Retrieval of the on-board data will occur if no external descriptor data is supplied (See Table 2). These on-board descriptors may be used during development, prototyping, and manufacturing. ISD-200 configuration and descriptor sources are selected by the mode of operation detected at power up. The following table describes how the ISD-200 determines USB Descriptor sources. Serial ROM present No I_MODE Input Pin 0 ISD-200 Configuration and USB Descriptor Retrieval In this mode, the ISD-200 uses a DIE-ID identifier generated at fabrication to provide a unique 12-character Serial Number descriptor string. All other Descriptor and Configuration values are taken from the
In-System Design Confidential
11
ISD-200 ASIC Datasheet Serial ROM present No I_MODE Input Pin 1 ISD-200 Configuration and USB Descriptor Retrieval internal on-board ROM. The ISD-200 retrieves all Descriptor and Configuration values from the vendor-specific Identify (FBh) data. The ISD-200 is configured using values in the internal ROM until the FBh data becomes available The ISD-200 retrieves all Descriptor and Configuration values from serial ROM. The ISD-200 is configured using values present in serial ROM data only (Unless the serial ROM signature check fails. The ISD200 then uses POR defaults listed in the Descriptor and Configuration data sections of this document). Undefined mode of operation.
Yes
0
Yes
1
Table 2 - ISD-200 Configuration and Descriptor Sources
Internal ROM Contents Internal on-board ROM addresses and the contents of those locations are shown in Tables 3 and 7 to 11. If the ISD-200 is operated using the on-board ROM contents for descriptor data, the Serial Number string is still guaranteed to be unique, as required by the USB Mass Storage Class (MSC) Bulk Only Transport Specification, through the utilization of a DIE-ID process at fabrication. This unique identifier is generated through the usage of physical parameters such as wafer coordinates, wafer number, lot number, fab number, date, time, etc. The internal ROM is also convenient for prototyping and manufacturing activities. Enough information is supplied from the internal ROM to the host that the ISD-200 will enumerate even when an un-programmed serial ROM is connected. Serial ROM Interface The ISD-200 supports the I2C "fast mode" interface, as found in the 24(L)C01-16 EEPROM family. That device family allows for up to 4 Kbytes of external storage, which may be used to store descriptors and other information. Note that if a 24(L)C04/08/16 part is used, no descriptor is allowed to span multiple pages within the EEPROM. Programming of the serial ROM can be accomplished using an external device programmer, ISD-200 supported vendor specific USB commands, or using a "bed of nails" while the ISD-200 is in LIMBO Test mode (See Operational Modes, Test Mode Pins). An example of Serial ROM formatting is shown in Appendix A. Unused space in a serial ROM may be used for other purposes using the LOAD_CONFIG_DATA and READ_CONFIG_DATA USB Requests. Hardware detects the presence of a serial ROM and, if one is present, performs a data validity check. This check is in the form of a `signature' and is located at the beginning of the serial ROM data (Addresses 0x0 - 0x1, Table 3). If none is detected or the signature check fails, the ISD-200 will return configuration and descriptor data from the internal on-board ROM. Vendor-Specific Identify (FBh) Data If a serial ROM is not used, the ISD-200 can be configured to accept Descriptor and Configuration data from an attached device using a vendor-specific Identify command during the boot sequence. (See Operational Modes, I_MODE Pin) For FBh data to be deemed valid, it must first pass a validity check. This check is in the form of a `signature' and is located at the beginning of the FBh data (Addresses 0x0 - 0x1, Table 3). In the event of a failed signature check, the ISD-200 will respond to all Get_Descriptor or Get_Configuration USB
12
In-System Design Confidential
ISD-200 ASIC Datasheet commands by returning the defaults contained in the internal on-board ROM (See ATA/ATAPI Interface, Vendor-Specific ATA Commands, Identify). An example of vendor-specific Identify (FBh) data formatting is shown in Appendix A.
ISD-200 Configuration/USB Descriptor Data Formatting
Data formatting for all ISD-200 configuration data and USB descriptor data is identical for Internal ROM, Serial ROM, and vendor-specific Identify (FBh) data. The following sections show how the ISD-200 configuration data is mapped into address space. The USB Interface section contains formatting of USB descriptor data (See Tables 7-11). ISD-200 Configuration Data The ISD-200 Configuration Data is located in addresses 0 to 9 of the Descriptor/Configuration data contents. These bytes are read at power up and determine certain parameters and operational modes used by the ISD-200. Power-on reset default values are specified in bold. Formatting is identical for the internal ROM, serial ROM, and vendor-specific Identify (FBh) data. See Appendix A. The ISD-200 Configuration Bytes get loaded into internal registers, regardless of the original data source.
Address 0x00 Field Name Data Signature (LSB) Description This field specifies the least significant byte of the Serial ROM/FBh signature. This register does not exist in HW (no POR values) This field specifies the most significant byte of the Serial ROM/FBh signature. This register does not exist in HW (no POR values) This field specifies the ATA event notification command. Setting this field to 0x00 disables this feature. POR configuration default of 0x00 This field denotes the parameters used by the internal DPLL. The original clock source is 12 MHz. 5 bits M (7:3), 2 bits N (2:1), 1 bit Enable (0). When enabled, multiply the original clock source by M, divided by N M: 00000 => M=1 00001 => M=1 00010 => M=2 00011 => M=3 .... 11111 => M=31 N: 00 => N=1 01 => N=3 10 => N=2 11 => N=4 Enable: 0 => CLK_N disabled 1 => CLK_N enabled POR configuration default of 0x00 This field specifies the time in multiples of 128 ms (0x19 = 3.2s) before the ISD-200 stops polling the Alternate Status device register for reset complete and restarts the reset process. NOTE: The ROM contents ATA Initialization Timeout value must be large enough to accommodate I_MODE operation during the first device initialization sequence (before FBh configuration data load) POR configuration default of 0x02 On-board Defaults 0x52
0x01
Data Signature (MSB)
0x48
0x02
Event Notification
0x00
0x03
DPLL Parameters
0x00
0x04
ATA Initialization Timeout
0x19
In-System Design Confidential
13
ISD-200 ASIC Datasheet
Address 0x05 Field Name Reserved - Bits [7:6] Master/Slave Selection - Bit [5] Description Reserved; set to `0' This bit specifies device number selection. "0" - Drive 0 "1" - Drive 1 This bit specifies that the ISD-200 perform a ATAPI DEVICE RESET command during a full initialization sequence. This field determines ATA Bus data access cycle times. 0000 reserved 0001 Mode 2 (292 ns) 0010 Mode 2 (333 ns) 0011 Mode 2 (375 ns) 0100 Mode 1 (458 ns) 0101 Mode 1 (500 ns) 0110 Mode 1 (542 ns) 0111 Mode 1 (583 ns) 1000 Mode 0 (625 ns) 1001 Mode 0 (666 ns) 1010 Mode 0 (708 ns) 1011 Mode 0 (750 ns) 1100 reserved 1101 reserved 1110 reserved 1111 reserved POR configuration default of 0x0B This field specifies the value in CBWCB field that designates if the CB is decoded as ATA commands instead of the ATAPI command block. POR configuration default of 0x00 This field specifies the value in CBWCB field that designates if the CB is decoded as ATA commands instead of the ATAPI command block. POR configuration default of 0x00 On-board Defaults 0x01
ATAPI DEVICE RESET - Bit [4] ATA Timing - Bits [3:0]
0x06
0x07
ATA Command Designator (Byte 0, LSB) ATA Command Designator (Byte 1, MSB)
0x24
0x24
14
In-System Design Confidential
ISD-200 ASIC Datasheet
Address 0x08 Field Name Initialization Status - Bit[7] Configuration Descriptor 2 Present - Bit[6] Description This (Read Only) bit denotes the Device Initialization Status. If set, indicates the device initialization sequence is active. This bit specifies that a second Configuration Descriptor is present. See "BUS_POWER pin" under the "Power Management" section. "0" - not present "1" - present This bit specifies that the ISD-200 skip device initialization. "0" - normal operation "1" - only reset the device prior to allowing USB enumeration. The function of this bit is overridden (0) if I_MODE is set. Notification command, descriptor override, SRST enable, ATAPI DEVICE RESET settings are irrelevant. Setting this bit indicates that when USB Bus powered, the system's ATA interface is only powered when the NPWR500 pin is active (not controlled by NPWR100). "0" - normal operation "1" - If (BUS_POWER = 1) and (USB configuration = 0) then ATA pads are put into low power mode, ATA control lines (RESET-, DIOR-, DIOW-) are 3-stated to hi-Z, and the remainder of the ATA lines(NCS(1:0), DA(2:0), DD(15:0), and IORDY_PU_EN) are driven low. (See Power Management section) Descriptor Override - Bit[3] Setting this bit causes the ISD-200 to override the USB Descriptors for ATA devices. Not compatible with setting BUS_POWER=1. If set, (I_MODE = 0), AND (ATA device identified or device initialization fails), bDeviceClass returned as 0xFF bDeviceSubClass returned as 0x00 bDeviceProtocol returned as 0xFF bInterfaceClass returned as 0xFF bInterfaceSubClass returned as 0x00 bInterfaceProtocol returned as 0xFF idProduct bit 0 is replaced with a `1' (Suggested: even idProduct for ATAPI devices, odd numbers for ATA devices) else USB descriptor information unaltered This field denotes the (zero-based) maximum number of LUNs supported. POR configuration default of 0x30 Reserved; set to `0' This bit determines whether one or two configuration descriptors are made available to the host. This bit should not be set if the Configuration Descriptor 2 Present configuration bit is not set. "0" - Both descriptors are reported to the host if BUS_POWER=0 "1" - Report only the configuration descriptor that corresponds to state of the BUS_POWER input. Configuration 1 is returned when BUS_POWER=1, configuration 2 is returned when BUS_POWER=0 Setting this bit enables the SRST reset algorithm in the ISD-200. POR configuration default of 0x00 On-board Defaults 0x08
Skip ATA / ATAPI Device Initialization - Bit[5]
ATA HIGH POWER Device for USB Bus Powered Devices - Bit[4]
Last LUN Identifier - Bits[2:0] 0x09 Reserved - Bits[7:2] Report One Configuration - Bit[1]
0x01
SRST Enable - Bit[0]
Table 3 - ISD-200 Configuration Bytes Valid Configuration Byte Settings The following table depicts valid combinations of configuration byte settings and inputs that depend on the configuration source and USB Bus power usage. Operation outside the defined values may result in unexpected behavior and should be avoided.
In-System Design Confidential
15
ISD-200 ASIC Datasheet Configuration Descriptor 2 Present (configuration bit)
Descriptor Override (configuration bit)
ATA HIGH POWER (configuration bit)
Configuration Source Serial ROM 0 0/1 0/1 FBh (I_MODE) Data 1 0 0 Internal ROM 0 0/1 0/1 Attached Device Power Source USB Bus Only 0 0/1 0 0 Self-Powered Only 0/1 0 0 0 USB Bus or Self Powered 0 0/1 0 0 USB Bus or Self Powered 0 0/1 1 0/1 Note: Internal ROM value options are listed here in case the Internal ROM mask is rolled for a specific product/vendor application. See Table 3 and 7-11 for Internal ROM contents. Table 4 - Valid Configuration Byte Settings
USB Interface
The USB port on the ISD-200 is electrically and logically compliant with the Universal Serial Bus Specification Revision 1.1 (http://www.usb.org/developers/data/usbspec.zip).
Descriptor Requirements
Descriptors programmed into a serial ROM or vendor-specific Identify (FBh) command data must observe the following constraints. Configuration Descriptors The ISD-200 can support one or two configuration descriptors. If the system can operate as USB Bus powered and self powered, the ISD-200 requires that the first configuration descriptor be "dynamic" and the second be self powered. If the system can only operate as USB Bus powered or self powered, then only the first configuration descriptor is used (the second configuration descriptor is zeroed out and not reported to the host). See Power Management , BUS_POWER pin section. String Descriptor Indexes The ISD-200 imposes constraints on what descriptor string index values are allowable. For those strings that are optional, an index of 0x00 indicates that string is absent. Allowable string indexes are as follows: iManufacturer iProduct iConfiguration1 iInterface1 iSerialNumber iConfiguration2 iInterface2 16 0x01 or 0x00 if unused 0x02 or 0x00 if unused 0x03 or 0x00 if unused 0x04 or 0x00 if unused 0x05 (must be present to be MSC compliant) 0x07 or 0x00 if unused 0x08 or 0x00 if unused In-System Design Confidential
Report One USB Configuration (configuration bit)
Mode of Operation I_MODE (input pin)
ISD-200 ASIC Datasheet
Descriptor Override If the ISD-200 is to be used in applications where either ATA or ATAPI devices may be connected, the Descriptor Override configuration bit must be set. To avoid confusion, it is suggested that the idProduct(LSB) descriptor field be assigned an even or odd value depending on the device type. The detection of an ATA or ATAPI device initialization failure results in bit-0 of this value being replaced with `1'. Thus, it is suggested that ATAPI devices should have even idProduct values and ATA devices odd.
Pipes
This ISD-200 provides four USB pipes: Default Control, Bulk Out, Bulk In, and Interrupt. Default Control Pipe The default pipe is used to transport standard, class and vendor-specific USB requests to the ISD-200. Bulk Out Pipe The Bulk Out pipe is used to send command and data to an attached mass storage device. Maximum packet size is 64 bytes. Bulk In Pipe The Bulk In pipe is used to receive status and read data from an attached mass storage device. Maximum packet size is 64 bytes. Interrupt Pipe The Interrupt pipe is implemented for legacy driver compatibility reasons only. If addressed, it will always return 0x00.
Requests
The ISD-200 responds to three different types of request: * Standard USB device requests * Mass Storage Class Bulk-Only requests * Vendor-specific requests Standard Requests The ISD-200 supports all USB standard device requests except the optional Set Descriptor request. These requests, which are described in Chapter 9, Device Framework, of the USB Specification, are: * Clear Feature * Get Configuration * Get Descriptor (for information on String Descriptors, see String Descriptors on page 23) * Get Interface * Get Status * Set Address * Set Configuration * Set Interface * Set Feature
Mass Storage Class Bulk-Only Requests Mass Storage Class Bulk-Only requests supported by the ISD-200 are listed in the following table.
In-System Design Confidential
17
ISD-200 ASIC Datasheet
Label HARD_RESET GET_MAX_LUN bmRequestType 00100001b 10100001b bRequest 11111111b 11111110b wValue 0000h 0000h wIndex Interface Interface wLength 0000h 0001h Data [None] 1 byte
Table 5 - Mass Storage Class Bulk-Only Requests
HARD_RESET This request flushes all buffers and resets the pipes to their default states, resets all hardware and registers to their default state, causes the ISD-200 to enter a power-up reset state, and resets the attached ATA device with a pin reset (NATA_RESET). Any STALL conditions or bulk data toggle bits remain unchanged.
Vendor-Specific Requests Vendor specific requests supported by the ISD-200 are listed in the following table.
Label LOAD_CONFIG_DATA READ_CONFIG_DATA SOFT_RESET CMD_QUEUING_CONTROL bmRequestType 01000000b 11000000b 01000000b 01000000b bRequest 00000001b 00000010b 00000011b 00000100b wValue Data Source Data Source 0000h 0000h wIndex Starting Address Starting Address 0000h Queuing Control WLength Data Length Data Length 0000h 0000h Data Write Data Read Data [None] [None]
Table 6 - Vendor-Specific Requests LOAD_CONFIG_DATA This request allows configuration data to be written to the data source specified by the wValue field. The wIndex field specifies the starting address in the data source to which data is to be written and the wLength field denotes the length in bytes of data to be written. Legal values for wValue are as follows: 0x0000 0x0002 Configuration bytes, addresses 0x2 - 0x9 only External serial ROM
Writes to serial ROM may only be written starting on eight-byte boundaries, which means that the address value must be evenly divisible by eight. Also, writes to the serial ROM may only include a single 256 byte page per transaction. For example: 250 bytes may be written if the Starting Address is 6. (See Errata #3) Writes to the configuration bytes must be constrained to addresses 0x2 through 0x9, discussed in the ISD200 Configuration data section (See Table 3). Attempts to write outside this address space will result in a STALL condition. Only ISD-200 Configuration Byte registers get over written and not the original data source (serial ROM, FBh data, or on-board ROM). Illegal values for wValue as well as attempts to write to a serial ROM when none is connected will result in a STALL condition on the USB port.
READ_CONFIG_DATA This USB request allows data to be retrieved from the data source specified by the wValue field. Data is retrieved from the data source, beginning at the address specified by wIndex. The wLength field denotes the length in bytes of data to be read from the data source.
18
In-System Design Confidential
ISD-200 ASIC Datasheet
Legal values for wValue are as follows: 0x0000 0x0001 0x0002 0x0003 Configuration bytes, addresses 0x2 - 0x9 only Internal on-board ROM External serial ROM Vendor-specific Identify (FBh) data
Illegal values for wValue will result in a STALL condition on the USB port. Attempted reads from a serial ROM when none is connected or attempted reads from FBh data when not in I_MODE or when a serial ROM is present will result in a STALL condition. Attempts to read configuration bytes outside the address space 0x2 - 0x9 will also result in a STALL condition.
SOFT_RESET This request resets the ISD-200 data path control state machines, buffer ram and the command queue. The attached device does not get reset. This USB request is required for error recovery if complex command queuing is used.
CMD_QUEUING_CONTROL This request sets the type of command queuing used by the ISD-200. Enabling command queuing allows the ISD-200 to accept a CBW (refer to the USB Mass Storage Class Bulk Only Transport Specification) from a new command before the CSW for an earlier command has been sent. There are two types of command queuing, simple command queuing and complex command queuing. Simple command queuing allows the ISD-200 to accept a CBW for a new command before the previous command completes. If the previous command is a bulk out transfer, the CBW is not taken until all data for the previous command has been transferred. The new command will not be operated on until the CSW for the prior command has been sent. Error recovery is done through a HARD_RESET request. Complex command queuing enables out of order error recovery without resetting the attached device. Command queuing is done in the same manner as in simple command queuing. However, in the event of a an error, the ISD-200 can now accept a SOFT_RESET which resets the ISD-200 but does not reset the device. Legal values for wIndex are as follows: 0x0000 0x0001 Simple Command Queuing (POR default) Complex Command Queuing
Descriptors
Supported Descriptors * * Device Configuration The ISD-200 supports one or two possible configurations depending on the mode of operation. See Power Management, BUS_POWER pin section. Configuration 1. This configuration descriptor is used for Self, USB Bus, or Dynamic power applications. "Dynamic" power is defined to mean that the ISD-200 can operate as Self or USB Bus powered. The maximum power that can be drawn from the USB Bus is specified in the bMaxPower descriptor field.
In-System Design Confidential
19
ISD-200 ASIC Datasheet Configuration 2. This configuration denotes that the ISD-200 is Self powered only and is only used if Configuration 1 is Dynamic power. * Interface The ISD-200 supports one interface with four possible endpoints. * Endpoint The ISD-200 supports the following endpoints: Default Control endpoint. Accessible as endpoint 0. Bulk Out endpoint. Accessible as endpoint 1. Bulk In endpoint. Accessible as endpoint 2. Interrupt endpoint. Accessible as endpoint 3.
*
String The ISD-200 supports a set of class and vendor-specific string descriptors. For more information on strings, refer to the following section.
Descriptor Data Format Device Descriptor There is only one device descriptor for each USB device. This descriptor gives USB information about the ISD-200 device such as definitions of the device class and device subclass, among other things. The bNumConfigurations field specifies how many configurations the ISD-200 supports. See Power Management, BUS_POWER Pin section.
Address 0x12 0x13 0x14 0x15 0x16
Field Name bLength bDescriptor Type bcdUSB (LSB) bcdUSB (MSB) bDeviceClass
Description Length of device descriptor in bytes. Descriptor type. USB Specification release number in BCD.
On-board Defaults 0x12 0x01 0x10 0x01
0x17
bDeviceSubClass
0x18
bDeviceProtocol
0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 0x20
bMaxPacketSize idVendor (LSB) idVendor (MSB) idProduct (LSB) idProduct (MSB) bcdDevice (LSB) bcdDevice (MSB) iManufacturer
Device class. If (Descriptor Override configuration bit = 1 and I_MODE = 0) AND (an ATA device is detected or device initialization fails to complete), this field is returned as 0xFF. Device subclass. If (Descriptor Override configuration bit = 1 and I_MODE = 0) AND (an ATA device is detected or device initialization fails to complete), this field is returned as 0x00 Device protocol. If (Descriptor Override configuration bit = 1 and I_MODE = 0) AND (an ATA device is detected or device initialization fails to complete), this field is returned as 0xFF Maximum USB packet size supported Vendor ID. Product ID. If (Descriptor Override configuration bit = 1 and I_MODE = 0) AND (an ATA device is detected or device initialization fails to complete), this field is returned as idProduct bit 0 is replaced with a `1' Device release number in BCD.
0x00
0x00
0x00
0x40 0xAB 0x05 0x30 0x00 * 0x00 ** 0x10 0x01 0x01
Index to manufacturer string. This entry must be set to 0x01 if string is present, else 0x00 if not present
20
In-System Design Confidential
ISD-200 ASIC Datasheet
Address 0x21 0x22 Field Name iProduct iSerialNumber Description Index to product string. This entry must be set to 0x02 if string is present, else 0x00 if not present Index to serial number string. This entry must be set to 0x05 if string is present, else 0x00 if not present. The USB Mass Storage Class Bulk Only Transport Specification requires a unique serial number. Number of configurations supported. This value must be consistent with configuration settings for `Configuration Descriptor 2 Present' and `Report 1 Configuration'. Valid values are: 1 (CFG_2_PRESENT=0) OR (CFG_2_PRESENT=1 AND RPT_1_CFG=1) 2 (CFG_2_PRESENT=1 AND RPT_1_CFG=0) If (Descriptor 2 Present' = 1) and (`Report 1 Configuration' = 0) and (BUS_POWER = 1) then this value is overridden with 0x01. On-board Defaults 0x02 0x05
0x23
bNumConfigurations
0x01
* - First Silicon value "0002" ** - Second Silicon value "String(6) =
Table 7- Device Descriptor
Configuration Descriptor The ISD-200 supports up to two configuration descriptors. The configuration descriptor contains information about the ISD-200 device configuration. Each configuration has one interface that supports four endpoints. If a second configuration descriptor is used, offset locations 0x24-0x27 in the following table are used to override the appropriate values. The common descriptor fields are shared with the first configuration. See Power Management, BUS_POWER pin section.
Address 0x24
Field Name bConfiguration Value 2
Description The value to use as an argument to Set Configuration to select the configuration. This entry must be set to 0x02 if two configuration descriptors are present. Index to second configuration string. This entry must be set to 0x07 if string is present, otherwise set to 0x00 if not present. Maximum power consumption for the second configuration. Units used are mA*2 (i.e. 0x31 = 98 mA). Index to interface string associated with the second configuration descriptor. This entry must be set to 0x08 if string is present, otherwise set to 0x00 if not present. Length of configuration descriptor in bytes. Descriptor type. Number of bytes returned in this configuration. This includes the configuration descriptor plus all the interface and endpoint descriptors. Number of interfaces supported. The ISD-200 only supports one interface. The value to use as an argument to Set Configuration to select the configuration. Set to 0x01 for the first configuration descriptor. Index to first configuration string. This entry must be set to 0x03 if string is present, otherwise set to 0x00 if not present. Device attributes for this configuration. Configuration characteristics: Bit Description On-board default 7 Reserved. `1' 6 Self-powered. `1' 5 Remote wake-up. `1'/'0' (See Operational Modes, NEJECT, NCART_DET Pins) 4-0 Reserved, set to 0. `0' Maximum power consumption for the second configuration. Units used are mA*2 (i.e. 0x31 = 98 mA).
On-board Defaults 0x00
0x25 0x26 0x27
iConfiguration 2 bMaxPower 2 iInterface 2
0x00 0x00 0x00
0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F
bLength bDescriptorType bTotalLength (LSB) bTotalLength (MSB) bNumInterfaces bConfiguration Value 1 iConfiguration 1 bmAttributes
0x09 0x02 0x27 0x00 0x01 0x01 0x00 * 0xE0 ** 0xC0
0x30
bMaxPower 1
0x31
In-System Design Confidential
21
ISD-200 ASIC Datasheet
Address Field Name Description On-board Defaults
* - First Silicon value ** - Second Silicon value
Table 8 - Configuration Descriptor(s)
Interface Descriptor This descriptor specifies the specific interface within a configuration. In the ISD-200, the interface contains four endpoint descriptors: Default Control (no descriptor), Bulk out, Bulk in, and Interrupt. It should be noted that the Interrupt endpoint is only present for driver legacy reasons. It shall always return 0x00 when it is polled. Interface and endpoint descriptors cannot be directly accessed using the Get_Descriptor USB command. However, interface and endpoint descriptors are always returned or written to as part of the configuration descriptor. Endpoint descriptors and addresses must be in the fixed order of the ISD-200 on-board defaults. Bulk-out first, then Bulk-in followed by Interrupt.
Address 0x31 0x32 0x33 0x34 0x35 0x36 Field Name bLength bDescriptorType bInterfaceNumber bAlternateSettings bNumEndpoints bInterfaceClass Description Length of interface descriptor in bytes. Descriptor type. Interface number. Alternate settings Number of endpoints Interface class. If (Descriptor Override configuration bit = 1 and I_MODE = 0) AND (an ATA device is detected or device initialization fails to complete), this field is returned as 0xFF. Interface subclass. If (Descriptor Override configuration bit = 1 and I_MODE = 0) AND (an ATA device is detected or device initialization fails to complete), this field is returned as 0x00. Interface protocol. If (Descriptor Override configuration bit = 1 and I_MODE = 0) AND (an ATA device is detected or device initialization fails to complete), this field is returned as 0xFF. Index to interface string associated with the first configuration descriptor. This entry must be set to 0x04 if string is present, otherwise set to 0x00 if not present. USB Bulk Out Endpoint Length of this descriptor in bytes. Endpoint descriptor type. This is an Out endpoint, endpoint number 1. This is a bulk endpoint. Max data transfer size. On-board Defaults 0x09 0x04 0x00 0x00 0x03 0x08
0x37
bInterfaceSubClass
0x06
0x38
bInterfaceProtocol
0x50
0x39
iInterface 1
0x00
0x3A 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44
bLength bDescriptorType bEndpointAddress bmAttributes wMaxPacketSize (LSB) wMaxPacketSize (MSB) bInterval bLength bDescriptorType bEndpointAddress bmAttributes
0x07 0x05 0x01 0x02 0x40 0x00
Does not apply to bulk endpoints. USB Bulk In Endpoint Length of this descriptor in bytes. Endpoint descriptor type. This is an In endpoint, endpoint number 2. This is a bulk endpoint.
0x00 0x07 0x05 0x82 0x02
22
In-System Design Confidential
ISD-200 ASIC Datasheet
Address 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E Field Name wMaxPacketSize (LSB) wMaxPacketSize (MSB) bInterval bLength bDescriptorType bEndpointAddress bmAttributes wMaxPacketSize (LSB) wMaxPacketSize (MSB) bInterval This is the polling interval. Max data transfer size. Description On-board Defaults 0x40 0x00 Does not apply to bulk endpoints. USB Interrupt Endpoint Length of this descriptor in bytes. Endpoint descriptor type. This is an Interrupt endpoint, endpoint number 3. This is an interrupt endpoint. Max data transfer size. 0x07 0x05 0x83 0x03 0x02 0x00 0x20 0x00
Table 9 - Interface Descriptor String Descriptors The ISD-200 supports 9 USB string descriptors. These strings can be referenced by standard descriptors (e.g. a manufacturer name string indexed by the iManufacturer field in the Device Descriptor). All string descriptor lengths are restricted to 63 bytes or less. All optional string descriptors are referenced using a table of starting string addresses (See Table 10). The starting address values are specified as the descriptor location divided by 2 (e.g. Language ID string begins at 0x50 but is specified in the table to be 0x28). If a particular string isn't implemented, the starting address value must be set to 0x00. String index 6 is hard coded to return the English Unicode ISD-200 Hardware revision string "0002" or "0003". Similarly, as specified in the descriptor tables, if a string isn't implemented, the index (example: iProduct in the device descriptor) reference must be set to 0x00.
Address 0x0A 0x0B 0x0C 0x0D 0x0E 0x0F Field Name Language ID String(0) Starting Address Manufacturer String(1) Starting Address Product String Starting(2) Address Configuration 1 String(3) Starting Address Configuration 1 Interface String(4) Starting Address Serial Number String(5) Starting Address Configuration 2 String(7) Starting Address Configuration 2 Interface String(8) Starting Address Description Address location for LANGID string (divided by 2). This offset must be set to 0x00 if the string is not present. Address location for iManufacturer string (divided by 2). This offset must be set to 0x00 if the string is not present. Address location for iProduct string (divided by 2). This offset must be set to 0x00 if the string is not present. Address location for iConfiguration string (divided by 2). This offset must be set to 0x00 if the string is not present. Address location for iInterface string (divided by 2). This offset must be set to 0x00 if the string is not present. Address location for iSerialNumber string (divided by 2). This offset must be set to 0x00 if the string is not present. The USB Mass Storage Class Bulk Only Transport Specification requires a unique serial number. Address location for second iConfiguration 2 string (divided by 2). This offset must be set to 0x00 if the string is not present. Address location for second iInterface 2 string (divided by 2). This offset must be set to 0x00 if the string is not present. On-board Defaults 0x28 0x2A 0x3B 0x00 0x00 0x00
0x10 0x11
0x00 0x00
Table 10 - String Locations String index 0 must contain the LANGID of exactly one language, as the ISD-200 supports only a single language. Microsoft defines the LANGID codes for Windows, as described in Developing International Software for Windows 95 and Windows NT, Nadine Kano, Microsoft Press, Redmond, Washington. Note that the LANGID code for English is 0x0409 (http://www.usb.org/developers/data/USB_LANGIDs.pdf).
In-System Design Confidential
23
ISD-200 ASIC Datasheet There is an additional string, index 6, that is not referenced by standard descriptors. Index 6 contains the ISD-200 Hardware Revision string. The following table shows how the LANGID, manufacturer, and product strings are formatted in the on-board ROM contents, and this can be considered an example of how to format strings in a serial ROM or in FBh data. Each string character is comprised of an ASCII character appended to a NULL byte to meet the UNICODE encoding requirements as specified in The Unicode Standard, Worldwide Character Encoding, Version 1.0, Volumes 1 and 2.
Address Field Name Description USB String Descriptor - Index 0 (LANGID) 0x50 0x51 0x52 0x53 bLength bDescriptorType LANGID (LSB) LANGID (MSB) LANGID string descriptor length in bytes. Descriptor type. Language supported. Note: See LANGID table in Microsoft documentation (the code for English is 0x0409) USB String Descriptor - Index 1 (Manufacturer) String descriptor length in bytes (restricted to 63 bytes or less). Descriptor type. ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") USB String Descriptor - Index 2 (Product) 0x04 0x03 0x09 0x04 On-board Defaults
0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73 0x74 0x75
bLength bDescriptorType bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString
0x22 0x03 0x49 ("I") 0x00 0x6E ("n") 0x00 0x2D ("-") 0x00 0x53 ("S") 0x00 0x79 ("y") 0x00 0x73 ("s") 0x00 0x74 ("t") 0x00 0x65 ("e") 0x00 0x6D ("m") 0x00 0x20 (" ") 0x00 0x44 ("D") 0x00 0x65 ("e") 0x00 0x73 ("s") 0x00 0x69 ("i") 0x00 0x67 ("g") 0x00 0x6E ("n") 0x00
24
In-System Design Confidential
ISD-200 ASIC Datasheet
Address 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E0x135 0x136 0x137 0x138 0x139 0x13A 0x13B 0x13C Field Name bLength bDescriptorType bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString Not used Hardware Revision String Descriptor - Index 6 bLength bDescriptorType bString bString bString bString bString String descriptor length in bytes (Hardware revision string). Descriptor type 0x0A 0x03 0x30 0x00 0x30 0x00 0x30 Description String descriptor length in bytes (restricted to 63 bytes or less). Descriptor type ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") ASCII character. ("NUL") On-board Defaults 0x28 0x03 0x55 ("U") 0x00 0x53 ("S") 0x00 0x42 ("B") 0x00 0x20 (" ") 0x00 0x53 ("S") 0x00 0x74 ("t") 0x00 0x6F ("o") 0x00 0x72 ("r") 0x00 0x61 ("a") 0x00 0x67 ("g") 0x00 0x65 ("e") 0x00 0x20 (" ") 0x00 0x41 ("A") 0x00 0x64 ("d") 0x00 0x61 ("a") 0x00 0x70 ("p") 0x00 0x74 ("t") 0x00 0x65 ("e") 0x00 0x72 ("r") 0x00 0xXX
In-System Design Confidential
25
ISD-200 ASIC Datasheet
Address 0x13D 0x13E Field Name bString bString Description On-board Defaults 0x00 * 0x32 ** 0x33 0x00
0x13F
bString
* - First Silicon value ** - Second Silicon value
Table 11 - String Descriptors
ATA/ATAPI Interface
The ATA/ATAPI port on the ISD-200 is compliant with the Information Technology - AT Attachment with Packet Interface - 4 (ATA/ATAPI-4) Specification, T13/1153D Rev 18 (ftp://fission.dt.wdc.com/x3t13/project/d1153r18.pdf). The ISD-200 provides support for Packet commands as well as ATA commands. The ISD-200 provides a vendor-specific Identify (FBh) command that returns configuration data and USB descriptor information (see Descriptors section, page 7) from an attached mass storage device. Additionally, there is a built in vendor-specific event notify command to communicate certain events on an interrupt basis to the device.
Protocol
The ISD-200 supports command protocol flows as defined in the ATA/ATAPI-4 Specification. Commands are grouped into different classes, based on the protocol followed for command execution. The ATA/ATAPI interface supports the following clarifications: * * * Immediately after the reset recovery period, the ISD-200 will write 0x00 to the Device Control register. Arbitrary byte count transfers supported. 16-bit data reads and writes. 8-bit data transfers not supported.
Reset Mapping
The ATA/ATAPI Interface responds to several resets, Power-on, Resume, USB, MSC Hard, and Vendorspecific Soft reset. In the case of a Power-on reset, a full device initialization is performed (See Figure 3). FBh data is retrieved and stored if applicable. In the case of a Resume reset, a full device initialization is performed as well (previously stored FBh data is not effected). In the cases of USB reset and MSC Hard reset, a partial initialization is performed which excludes all attempts to perform Identify Device commands. If BUS_POWER=1 then the USB reset causes a full initialization after the USB configuration setting is restored. In the case of a Vendor-specific Soft reset, only the internal state machines are reset.
26
In-System Design Confidential
ISD-200 ASIC Datasheet
Device Requirements
Attached mass storage devices must support the following device requirements. ATA Power Supplied from the USB Bus Power requirements for the device vary depending upon the mode used. If no serial ROM is present and IMODE is asserted, the device must be capable of operating at 4.4V when in enumeration mode (100 mA). That is, when obtaining configuration and USB descriptor information from the device using the vendorspecific Identify (FBh) command. After enumeration, the device must be able to operate at 4.75V when in operational mode (500 mA). If a serial ROM is used, the device must be able to operate at 4.75V when obtaining configuration and USB descriptor information. ATA Reset, A1h, FBh BSY and DRQ must be cleared by the device prior to the amount of time specified by ATA Initialization Timeout configuration field has passed since the removal of reset. ATA Polling Device The device shall be capable of being a polling only device. As such, the ATA signal INTRQ is not required but may be useful as a debug tool. ISD-200 ATA Bus State During Idle The ISD-200 drives the address lines high and the last contents of the data register onto the ATA bus when idle. Pull up or pull down resistors shall not be used in bus power systems as the drive supply power will be shut off in USB suspend mode. ATA PIO Support Register accesses are performed in PIO mode 0 (750 ns cycle time). The maximum data register accesses are performed in PIO mode 2 (292 ns cycle time). The ISD-200 configuration bytes must be set such that data register accesses do not exceed the maximum speed supported by the device.
ATA Initialization Timeout
The ISD-200 supports a default configuration of 3.2 seconds for ATA Initialization Timeout. If a serial ROM is used, its ATA Initialization Timeout configuration value will override the default prior to device initialization. If no serial ROM is used and I_MODE is asserted, subsequent device initializations will use the ATA Initialization Timeout configuration value supplied by the vendor-specific Identify (FBh) command. Reset Recovery shall be 3 ms. The following figure graphically defines "Initialization Timeout" and "Reset Recovery".
reset assertion initialization timeout
ATA_NRESET
reset recovery
nDIOR/nDIOW
In-System Design Confidential
27
ISD-200 ASIC Datasheet Figure 2 - ATA Reset Protocol
Device Initialization Sequence
The diagrams on the following pages show the normal sequence used for device initialization.
28
In-System Design Confidential
ISD-200 ASIC Datasheet
INITIALIZE flow diagram
do_init yes Reset Device assert ATA_NRESET for 50 ms
page 1 of 2
reset retry
Reset Recovery deassert ATA_NRESET wait for 3 ms
Poll ALT_STAT yes Device Initialized (pg 2) no Init Timeout OR BSY=0 & DRQ=0 OR BSY=0 & DRQ=1 Init Timeout OR BSY=DRQ=0 Write Device Control with 04h and wait for 3 ms BSY=0 DRQ=1
SKIP_BOOT no Write Device Control with 00h and wait for 3 ms
SRST_ENABLE no
yes Write Device Control with 00h and wait for 3 ms
Slave Master/Slave Master Poll ALT_STAT
Poll ALT_STAT
BSY=DRQ=0 OR 50ms Timeout yes
no
no Init Timeout OR BSY=0 & DRQ=0 OR BSY=0 & DRQ=1
Write Device Head with "101"&DEV&"0000" and wait for 500 ns
Initialization timeout OR BSY=0 & DRQ=1
BSY=0 & DRQ=0 Attempt ECh (page 2)
In-System Design Confidential
29
ISD-200 ASIC Datasheet
INITIALIZE flow diagram
(from page 1)
page 2 of 2
Attempt ECh command
ECh Success yes
no
ECh Signature Pass no
yes
ATAPI Reset enabled yes
no
Perform ATAPI Reset(08h) Attempt A1h command no I_MODE and no_prom yes Attempt FBh command
yes
A1h Success no no
FBh Success yes Device Initialized
no
Reset Retry (page 1)
Event Notification command (if enabled)
assert INIT DONE
Figure 3 - Full Device Initialization Sequence
30
In-System Design Confidential
ISD-200 ASIC Datasheet
ATA Command Block
ATA commands for the ISD-200 shall be supported by command encoding in the command block portion of the MSC Command Block Wrapper (CBW). Refer to the USB Mass Storage Class (MSC) Bulk Only Transport Specification for information on CBW formatting. The ATA Command Block (ATACB) provides a means of passing ATA commands and ATA register accesses for execution. The ATACB resides in the CBWCB portion of the CBW. The ATACB shall be distinguished from other command blocks by the first two bytes of the command block matching the wATACBSignature. Only command blocks that have a valid wATACBSignature shall be interpreted as ATA Command Blocks. All other fields of the CBW and restrictions on the CBWCB shall remain as defined in the USB Mass Storage Class Bulk Only Transport Specification. The ATACB shall be 16 bytes in length. The following table and text defines the fields of the ATACB. Byte 0-1 2 3 4 5-12 13-15 Table 12 - ATA Command Block Formatting Field Descriptions wATACBSignature - This signature indicates the CBWCB contains an ATACB. The signature field shall contain the value 2424h to indicate an ATACB. Devices capable of accepting only ATA Command Blocks shall return a command failed status if the wATACBSignature is not correct. bmATACBActionSelect - The bit fields of this register shall control the execution of the ATACB. Refer to the ATACB Command Flow diagram in section 4 of this document for further clarification . The bitmap of the bmATACBActionSelect shall be defined as follows: Bits 7-6 Reserved - The host shall set these bits to zero. Bit 5 DEVOverride - Use the DEV value specified in the ATACB. 0 = The DEV bit value will be determined from ISD200 Configuration data (byte 5 bit 5) 1= Then DEV bit value will be determined from the ATACB(0xB bit 5). Bits 4-3 DPErrorOverride(1:0) - Device and Phase Error Override. These bits shall not be set in conjunction with bmATACBActionSelect TaskFileRead. The order of precedence for error override shall be dependant on the amount of data left to transfer when the error is detected, as depicted in the ATACB Command Flow diagram. 00 = Data accesses are halted if a device or phase error is detected. 01 = Phase error conditions are not used to qualify the occurrence of data accesses. Reserved (0) 7 6 5 4 3 2 1 0
wATACBSignature bmATACBActionSelect bmATACBRegisterSelect bATACBTransferBlockCount bATACBTaskFileWriteData Reserved (0)
In-System Design Confidential
31
ISD-200 ASIC Datasheet 10 = Device error conditions are not used to qualify the occurrence of data accesses. 11 = Neither device error or phase error conditions are used to qualify the occurrence of data accesses. PollAltStatOverride - Poll ALTSTAT Override. 0 = The Alternate Status registered shall be polled until BSY=0 before proceeding with the ATACB operation. 1 = Execution of the ATACB shall proceed with the data transfer without polling the Alternate Status register until BSY=0. DeviceSelectionOverride - Device Selection Override. This bit shall not be set in conjunction with bmATACBActionSelect TaskFileRead. 0 = Device selection shall be performed prior to command register write accesses. 1 = Device selection shall not be performed prior to command register write accesses. TaskFileRead - Read and return the task file register data selected in bmATACBRegisterSelect. If TaskFileRead is set, the dCBWDataTransferLength field must be set to 8. 0 = Execute ATACB command and data transfer (if any). 1 = Only task file registers selected in bmATACBRegisterSelect shall be read. Task file registers not selected in bmATACBRegisterSelect shall not be accessed and 00h shall be returned for the unselected register data.
Bit 2
Bit 1
Bit 0
bmATACBRegisterSelect - Setting the appropriate bit fields shall cause the task file read or write register access to occur. Task file read data shall always be 8 bytes in length. Unselected task file register data shall be returned as 00h. Task file register accesses shall occur in sequential order as shown (Bit 0 first, Bit 7 last). The bmATACBRegisterSelect bitmap shall be as defined below. Bit 0 (3F6h) Device Control / Alternate Status Bit 1 (1F1h) Features / Error Bit 2 (1F2h) Sector Count Bit 3 (1F3h) Sector Number Bit 4 (1F4h) Cylinder Low Bit 5 (1F5h) Cylinder High Bit 6 (1F6h) Device-Head (See bmATACBActionSelect(5)) Bit 7 (1F7h) Command / Status bATACBTransferBlockCount - This value shall denote the maximum requested block size in 512 byte blocks. This variable shall be set to the value last used for "Sectors per block" in the SET_MULTIPLE_MODE command. Valid values are 1, 2, 4, 8, 16, 32, 64, and 128. Command failed status shall be returned if an invalid value is detected in the ATACB. Non-multiple commands shall set this value to 1 (block size of 512 bytes). bATACBTaskFileWriteData - ATA register data used on ATA command or PIO write operations. Only data entries that have the associated bmATACBRegisterSelect bit set shall be required to have valid data. ATACB Address offset 5h (3F6h) Device Control ATACB Address offset 6h (1F1h) Features ATACB Address offset 7h (1F2h) Sector Count ATACB Address offset 8h (1F3h) Sector Number ATACB Address offset 9h (1F4h) Cylinder Low ATACB Address offset Ah (1F5h) Cylinder High ATACB Address offset Bh (1F6h) Device-Head (See bmATACBActionSelect(5)) ATACB Address offset Ch (1F7h) Command
32
In-System Design Confidential
ISD-200 ASIC Datasheet
ATA Command Flow
The following figure shows the flow of ATA commands, specifically the actions taken by the ISD-200 based upon how the ATA Command Block is configured.
page 1 of 2 Command Fail OR other command block specification assumed no
wATACB Signature detected
yes Latch bmATACBActionSelect set
ATACB PollAltStat Override
Latch bmATACBRegisterSelect
clear Poll ATA Alternate Status until BSY=0 and store ERR and DRQ bits.
set
ATACB TaskFileRead
clear Set TransferLength = dCBWDataTransferLength
Read registers selected in bmATACBRegisterSelect.
Latch TransferBlockSize
ATACB DeviceSelection Override
set
DONE clear Perform ATA Device Selection. The device shall specify the value for the DEV bit.
Note: Only ATA registers selected in bmATACBRegisterSelect are read. ATA registers not read are zero filled in the 8 bytes of returned data. dCBWDataTransferLength must be set to 8.
Write ATA registers selected in bmATACBRegisterSelect with the bATACBTaskFileWriteData
C
set Note: If no ATA registers are selected then no ATA registers are written. The device shall specify the value for the DEV bit when writing the DEVICE_HEAD register.
ATACB PollAltStat Override
clear
B
Poll ATA Alternate Status until BSY=0 and store ERR and DRQ bits.
A
In-System Design Confidential
33
ISD-200 ASIC Datasheet
page 2 of 2 A
Note: DRQ and ERR bit information come from last read of ATA Alternate Status register. set
yes
TransferLength > 0
no
ATACB DPErrorOverride (0)
ATACB DPErrorOverride (0)
set
clear set
clear
DRQ clear
DRQ set Phase Error
clear
set
ATACB DPErrorOverride (1)
clear
ATACB DPErrorOverride (1)
set
clear set
clear
ERR
set
ERR
clear
Phase Error
Read ATA Status to clear INTRQ and ignore results
Read ATA Status to clear INTRQ and ignore results
B
Fail
Read ATA Status to clear INTRQ and ignore results
yes
TransferLength > 0
no
TransferLength < BlockSize*512? yes Set ByteCount = TransferLength Set TransferLength = 0
no
Done Set ByteCount = (BlockSize*512) Set TransferLength = TransferLength (BlockSize*512)
Transfer ByteCount bytes specified by Direction in bmCBWFlags.
C
Figure 4 - ATA Command Block Flow Diagram
34
In-System Design Confidential
ISD-200 ASIC Datasheet
Vendor-Specific ATA Commands
There are two vendor-specific ATA commands implemented in the ISD-200. They are shown in the following table.
Label IDENTIFY EVENT_NOTIFY
Command Code FBh Specified in Configuration Data
Description This command is used to read ISD-200 configuration data and USB descriptor data from an attached mass storage device. This command communicates certain events to the device and is executed as the events occur.
Table 14 - Vendor-Specific ATA Commands
IDENTIFY The vendor-specific Identify (FBh) command enables the ISD-200 to request configuration and USB descriptor information from an attached mass storage device. Command Code FBh Feature Set The PACKET Command feature set may or may not be implemented. Protocol PIO data-in (refer to ATA/ATAPI-4 Specification, section 9.7). Input
Register Features Sector Count Sector Number Cylinder Low Cylinder High Device/Head Command 7 6 5 4 N/A N/A N/A N/A N/A obs N/A obs DEV FBh N/A N/A N/A N/A 3 2 1 0
Device/Head register - The DEV bit indicates the selected device. Normal Outputs
Register Error Sector Count Sector Number Cylinder Low Cylinder High Device/Head Status 7 6 5 4 N/A N/A N/A N/A N/A obs BSY N/A N/A obs N/A DEV N/A N/A DRQ N/A N/A N/A N/A N/A ERR 3 2 1 0
In-System Design Confidential
35
ISD-200 ASIC Datasheet Device/Head register - The DEV bit indicates the selected device. Status register - BSY shall be cleared to zero upon command completion. DRDY shall be set to one. DF (Device Fault) shall be cleared to zero. DRQ shall be cleared to zero. ERR shall be cleared to zero. Error Outputs If the device does not support this command, the device shall return command aborted. Otherwise, the device shall not report an error. Description When the command is issued, the device sets the BSY bit to one, and prepares to transfer 320 bytes of configuration/descriptor data to the ISD-200. The device then sets DRQ to one and clears BSY to zero. The arrangement and meaning of the FBh data bytes are specified in Tables 3, 7-11. An example of FBh programming is shown in Appendix A.
EVENT_NOTIFY The vendor-specific Event-notify command enables the ISD-200 to communicate the occurrence of certain events to the attached device. (See Operational Modes, NEJECT, NCART_DET Pins)
Command Code Specified in the ISD-200 Configuration Bytes, address 0x2. Programming the command code to 0x00 disables the Event-notify feature. Feature Set The PACKET Command feature set is used. Protocol Non-data (refer to ATA/ATAPI-4 Specification, section 9.9). Input
Register Features 7 USB Reset 6 Class Specific Reset 5 USB Suspend 4 USB Resume 3 Cartridge Insert 2 Cartridge Release 1 Eject Button Press 0 Eject Button Release
Sector Count Sector Number Cylinder Low Cylinder High Device/Head Command
N/A N/A STATE0 STATE1 N/A Specified in the ISD-200 Configuration Bytes
Features register - The USB Reset bit indicates that a USB Reset event has occurred. The Class Specific Reset bit indicates that an MSC Reset was issued by the host. The USB Suspend bit indicates that the USB Bus has gone into suspend. The USB Resume bit denotes that the USB Bus is no longer in suspend. The Cartridge Insert bit is set when the device media is inserted. 36 In-System Design Confidential
ISD-200 ASIC Datasheet The Cartridge Release bit is set when the device media is ejected. The Eject Button Press bit is set when the eject button on the device is pressed. The Eject Button Release bit is set when the eject button on the device is released. Cylinder High - The STATE0 vendor-specific field is combined with STATE1 specify state information to the attached device. Cylinder Low - The STATE1 vendor-specific field is combined with STATE0 specify state information to the attached device. Normal Outputs
Register Error Sector Count Sector Number Cylinder Low Cylinder High Device/Head Status 7 6 5 4 3 2 1 0
BSY
N/A
N/A
N/A N/A N/A NSTATE0 NSTATE1 N/A N/A DRQ
N/A
N/A
N/A
Cylinder High - The NSTATE0 vendor-specific field is combined with NSTATE1 to communicate information about the state of the device back to the host. Cylinder Low - The NSTATE1 vendor-specific field is combined with NSTATE0 to communicate information about the state of the device back to the host. Status register - BSY shall be cleared to zero upon command completion. DRQ shall be cleared to zero. Error Outputs If the device does not support this command, the device shall return command aborted. Otherwise, the device shall not report an error. Description When this command is issued, the ISD-200 will wait until the device clears BSY and DRQ to zero before beginning the input register writes. After writing the input registers, the ISD-200 waits for BSY and DRQ cleared to zero and then reads the state information (NSTATE). The event notification command is issued following every assertion of ATA_NRESET to the device and following the POR device initialization sequence. The event notification command is also issued after any of the events reported in the event notification data take place. If any combination of mating events (mating events are defined as suspend/resume, cartridge insert/release, eject press/release, and USB/class reset) take place before the ISD-200 can issue the event notification command to the device, the following will occur: 1. 2. Send an event notification command showing all events. Send a subsequent event notification command showing only the most recent of any mated events.
In-System Design Confidential
37
ISD-200 ASIC Datasheet
If an event notification command does not complete for any reason (such as an incoming reset), the ISD200 will re-issue the command (with any new event data) until it completes successfully. Success of the command does NOT depend upon the ERR bit. If the DRQ bit is set in response to an event notification, ISD-200 will continue to poll (in order to make device incompatibility obvious).
Power Management
BUS_POWER Pin First silicon does not support the BUS_POWER pin being set (See Errata #6). The ISD-200 reacts to the following conditions as stated: * When a USB suspend condition exists and BUS_POWER pin is asserted, the external clock source(CLKN) is disabled, and if remote wakeup is disabled the oscillator is turned off, all ATA outputs put into low power mode, and ATA control lines (nATA_RESET, nDIOR, nDIOW) are 3stated to hi-Z. * When a USB suspend condition exists the remainder of the ATA lines (nCS(1:0), DA(2:0), DD(15:0)) are driven low. First silicon Errata #6 includes all ATA lines being three-stated only when BUS_POWER is asserted, and a suspend condition exists. * When the BUS_POWER pin is asserted, the USB Configuration value is set to zero, and configuration byte 8 bit 4 is set, all ATA outputs are put into low power mode, ATA control lines (nATA_RESET, nDIOR, nDIOW) are 3-stated to hi-Z. * When the USB Configuration value is set to zero, and configuration byte 8 bit 4 is set the remainder of the ATA lines (nCS(1:0), DA(2:0), DD(15:0)) are driven low. First silicon does not support this feature (See Errata #6). * The ISD-200 resets itself in the following cases: o If BUS_POWER is asserted USB configuration is set to 2. o If BUS_POWER changes when the USB configuration is set to 0. * The ISD-200 drives USB_ENUM before attempting to talk to attached device. * The ISD-200 does not attempt to talk to the disk until the USB configuration is set to either 1 or 2. First silicon does not support this feature (See Errata #6). * Setting the Descriptor Override bit is incompatible with setting BUS_POWER pin. The assertion of BUS_POWER will cause a Get Status USB request from the host to report a `0' (indicating bus-powered status) in bit 0 of the information returned. The de-assertion of BUS_POWER will cause a Get Status USB request from the host to report a `1' (indicating self-powered status) in bit 0 of the information returned. BUS_POWER pin state may also effect how USB descriptors are presented to the host (See Selectable Device Power Configurations section below). (See Errata #6) NPWR500, and NPWR100 Pins The NPWR500 and NPWR100 output pins indicate that the USB host has allotted the requested power(bMaxPower) to the peripheral system (See Figure 5). These pins allow USB power to be controlled in order to meet USB power consumption requirements. In the case of a USB Suspend condition, both NPWR500 and NPWR100 are de-asserted. Also, the ISD-200 will put itself into a low power state as described above. Upon a resume condition, the ISD-200 will resume normal operation and restore the NPWR500 and NPWR100 pin values as before suspend. ISD-200's power source is not to be controlled at any time using the NPWR500 or NPWR100 pins. NPWR100 is always asserted unless in USB suspend. NPWR100 asserted indicates that up to 100 mA may be drawn from USB. NPWR500 is only asserted when the USB configuration is set to 1. NPWR500 asserted indicated that up to 500 mA may be drawn from USB depending on what the bMaxPower value is set to for configuration 1
38
In-System Design Confidential
ISD-200 ASIC Datasheet Selectable Device Power Configurations The ISD-200 is capable of offering three types of system power configurations. * Self-Powered - Current is not taken from USB * Bus-Powered - Current is taken from USB * Dynamically-powered - Current may be taken from USB The ISD-200 may be configured to operate from different power sources dynamically depending upon the presence of external (NOT USB) power. Power source configuration is accomplished by controlling the BUS_POWER input pin accompanied by the appropriate ISD-200 configuration and USB Descriptor settings. NPWR100 and NPWR500 are also used to control power consumption as described in the previous sub-section. Self-Powered Example The BUS_POWER pin is de-asserted. ISD-200 Configuration: Configuration 2 Present = 0 Report One Configuration = 0 Device Descriptor: bNumConfigurations = 1 Configuration Descriptor: bConfigurationValue1 = 1 iConfiguration1 = 3 bMaxPower1 = Required USB current limited to under 100 mA (May need to use NPWR500 to satisfy USB suspend current requirements if any current is drawn) iInterface1 = 4 bConfigurationValue2 = N/A iConfiguration2 = N/A bMaxPower2 = N/A iInterface2 = N/A Bus-Powered Example The BUS_POWER pin is asserted. (See Errata #6) ISD-200 Configuration: Configuration 2 Present = 0 Report One Configuration = 0 Device Descriptor: bNumConfigurations = 1 Configuration Descriptor: bConfigurationValue1 = 1 iConfiguration1 = 3 bMaxPower1 = Required USB current limited to under 500 mA (May need to use NPWR500 to satisfy USB suspend and pre-configuration current requirements) iInterface1 = 4 bConfigurationValue2 = N/A iConfiguration2 = N/A bMaxPower2 = N/A iInterface2 = N/A Dynamically-Powered Example The BUS_POWER pin is asserted to indicate the absence of external power and de-asserted to indicate the presence of external power. (See Errata #6) ISD-200 Configuration (See Table 3): `Configuration 2 Present' = 1 `Report One Configuration' = Pick either 0 or 1 depending on host software and desired results (See Tables 3 and 8).
In-System Design Confidential
39
ISD-200 ASIC Datasheet Device Descriptor (See Table 7): bNumConfigurations = 1 if `Report One Configuration' is set otherwise 2 Configuration Descriptor (See Table 8): bConfigurationValue1 = 1 iConfiguration1 = 3 bMaxPower1 = (USB Current required by the peripheral system limited to under 500mA) iInterface1 = 4 bConfigurationValue2 = 2 iConfiguration2 = 7 bMaxPower2 = 0x31 (98 mA) iInterface2 = 8 Configuration 1 = Dynamic Configuration (NPWR500 asserted) Configuration 2 = Self-Powered Configuration Configuration 2 consists of configuration 1 values except with the 4 bytes of override values from bConfigurationValue2, iConfiguration2, bMaxPower2, and iInterface2 (See Tables 3 and 7-8). If `Report One Configuration' is set to 1: o Configuration 1 will be returned when BUS_POWER is asserted. o Configuration 2 will be returned when BUS_POWER is de-asserted. If `Report One Configuration' is set to 0: o When BUS_POWER is asserted, bNumConfigurations in the device descriptor will be overridden with 1 and Configuration 1 will be returned. o When BUS_POWER is not asserted Configuration 1 and Configuration 2 will be returned.
40
In-System Design Confidential
ISD-200 ASIC Datasheet
PwrOn NPWR100 = 0 NPWR500 = Z Yes Check for EEPROM Config Value =1? EEPROM Present? No (2)
No
Yes
NPWR100 = 0 NPWR500 = Z
NPWR100 = 0 NPWR500 = 0
I_MODE? No Yes Start ATA / ATAPI Boot ATA / ATAPI Boot Done?
No Start ATA / ATAPI Boot
Get Config Data
Yes
Set USB_ENUM No Operational
BUS_POWERED? Yes
No Return Config Descriptors: Dynamic (1) Self Powered (2) Return Only Config Descriptor: Dynamic (1)
Yes
No
USB SET_CONFIG ?
Yes
Config Value =0?
Figure 5 - Configuration Sequence
In-System Design Confidential
41
ISD-200 ASIC Datasheet
Operational Modes
NEJECT & NCART_DET Pins
These pins are used to trigger remote-wakeup (See Table 8, 0x2F) as well as Event Notification (See Vendor Specific ATA Commands, EVENT_NOTIFICATION). When asserted low `NEJECT' indicates to ISD200 that an eject button has been pushed. When asserted low, `NCART_DET' indicates that a cartridge is present. There is an internal 1ms filter on each of these inputs.
I_MODE Pin
I_Mode pin, when asserted high, allows the ISD200 Configuration and USB Descriptor data to be retrieved from an attached device. (See ISD-200 CONFIGURATION, DATA SOURCES)
ATA_EN Pin
ATA_EN pin allows ATA bus sharing with other host devices. De-asserting (ATA_EN=0) causes the ISD200 to 3-state all ATA bus interface pins to hi-Z; de-assert USB_ENUM, and reset all logic except onboard ROM / serial ROM logic that loads configuration data. This logic remains enabled to allow configuration data loads for the configurable external clock (CLKN) upon occurrence of chip reset. Asserting ATA_EN (ATA_EN=1) allows normal operation. In order to insure the internal pull-up for ATA_EN is on, TEST(3) must be tied low.
Test Mode Pins
TEST(3:0) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 Mode Description Normal Mode. This is the default mode of operation, or run time mode. Pulldowns are on. CLKN is disabled. Normal Mode. This is the default mode of operation, or run time mode. Pulldowns are on. CLKN defaults to 32 MHz. Normal Mode. This is the default mode of operation, or run time mode. Pulldowns are on. CLKN defaults to 40 Mhz. NandTree - Allows board level manufacturing tests. See following section. Scan Mode - Fab only test mode Limbo Setting this mode disables all output (3-state to hi-Z) Disable Disk (Normal) - Enable USB enumeration without ATAPI interface. Pull-downs are on. Reserved InTest (T) - Functional test mode with shortened timers. The DPLL and OSC circuits are still powered with CLKN disabled. Pull-downs are off. InTest (TM) - Functional test mode with shortened timers and shortened RAM. The DPLL and OSC circuits are still powered with CLKN defaulting to 32 MHz. Pull-downs are off. InTest (TMS) - Functional test mode with shortened timers, shortened RAM, and skip ATAPI identify boot sequence. The PLL and OSC circuits are still powered with CLKN defaulting to 40 MHz. Pull-downs are off. TestMux - Fab only test mode Scan Mode - Fab only test mode InTest (BT) - Functional test mode with DPLL bypassed (m=n=1), OSC circuits disabled (pass through), and shortened timers. Pull-downs are off. Reserved
1010
1011 1100 1101 1110
42
In-System Design Confidential
ISD-200 ASIC Datasheet 1111 Table 13 - Test Modes Test Pin Pull-downs In order to insure the internal pull-downs for TEST(2:0) are on, TEST(3) must be tied low. Normal Mode With CLKN Enabled There are two modes in which the CLKN output clock is initiated before ISD-200 configuration data is received. The main reason for providing a clock in this manner is to allow an ATA device to use this clock as a system clock when the ISD-200 configuration data source is to come from the device (See the VendorSpecific ATA Commands, Identify section). Two clock frequencies are provided 32 and 40 MHz. Disable Disk Mode This mode allows the ISD-200 to temporarily bypass the normal device initialization in a manufacturing environment in order to program the EEPROM over USB. This mode is NOT to be used as a normal functional mode. NandTree Test Mode This mode disables all outputs except `USB_ENUM' (NandTree output), allowing for testing of input connectivity. The list below shows the connectivity order of the NandTree chain (beginning to end).
NRESET, ATA_EN, IORDY, DD[15:0], Note: DD[0] first, DD[15] last NEJECT, NCART_DET, BUS_POWER, SCAN_EN, I_MODE, SDA
PowerDown - Fab only test mode
Input pin connectivity can be tested with the following procedure:
1) Set all inputs on the chain to `1'. Output will be `1'. 2) Set NRESET to `0'. Output will toggle 3) Set NRESET back to `1'. Output will toggle. 4) Set '0' on the NandTree chain inputs from the beginning of the chain to the end (in order). The output will toggle with each input toggle, testing pad / IO cell connectivity.
Limbo Mode ISD-200 provides a "limbo mode" in which all of its output pads are placed in a high-impedance state.
In-System Design Confidential
43
ISD-200 ASIC Datasheet
External Circuitry
External Components Connection
5.0V
5.0V USB_ENUM
1.5 SDA SCL DPLS
1.5K 24
ISD-200
D+ 24 D-
DMNS CLK12 CLKX 0 12MHz 15pF
Crystal Specifications: 32 pf series capacitance 7 pf load capacitance Crystals with different specifications than above will require modified circuit values for correct operation.
15pF
Note for brick powered systems: System design must insure the 1.5K ohm pull-up resistor on DPLS does not source power if VBUS power is not present.
Figure 6 - External Components Connection
IORDY Hookup
The IORDY pin must be pulled up using a 1 K ohm resistor. The figure on the left is used when the ISD200 and another device (or devices) is connected to the ATA bus of the drive. The figure on the right is used when the ISD-200 is the only device connected.
Figure 7 - IORDY Hookup
44
In-System Design Confidential
ISD-200 ASIC Datasheet
PDIAG and PDASP Hookup
Power on diagnostics timeout (750 ms and 30 s) must be limited to avoid an ISD-200 timeout. One method to accomplish this is to make sure PDIAG and PDASP are grounded on the circuit board and the device is wired to be master.
Absolute Maximum Ratings
Stresses in excess of the absolute maximum ratings can cause permanent damage to the device. These are absolute stress ratings only. Functional operation of the device is not implied at these or any other conditions in excess of those given in the operations sections of this data sheet. Exposure to absolute maximum ratings for extended periods can adversely affect device reliability. Symbol VDD33 VDD18 Vin Iin Ta Tstrg Parameter 3.3 V IO Supply 1.8 V IO Supply 5V Tolerant Input Pin Voltage 3.3V Input Pin Voltage Input Pin Current Min -0.5 -0.5 -0.5 -0.5 -20 0 -65 Max 4.0 2.0 Units Volts Volts Volts mA Celsius Celsius
5.5
VDD33 + 0.5 20 70 150
Ambient Operating Temperature Range
Storage Temperature
Table 15 - Absolute Maximum Ratings
Electrical Characteristics
Voltage Parameter
Input Voltage Low Input Voltage High Output Voltage Low Output Voltage High Power Supply Voltage Symbol VIL VIH VOL VOH Test Conditions Min 2.0 2.4 3.0 1.65 Typ 3.3 1.8 Max 0.8 0.4 3.6 1.95 Unit V V V V V V
VDD33 VDD18 Note: (TA = 0 C, VDD33 = 3.3 V 0.3 V, VSS = 0 V) Table 16 - DC Characteristics
In-System Design Confidential
45
ISD-200 ASIC Datasheet
Current Parameter VDD33 supply current (IDD33) VDD18 supply current (IDD18) IDD33 with ATA_EN = 0 IDD18 with ATA_EN = 0
Operating 10 mA (typ) 10 mA (typ) 6 A (typ) 1 mA (typ)
Suspend 6 A (typ) 8 A / 275 A (typ) N/A N/A
Note: (TA = 0 C, VDD = 3.3 V 0.3 V, VSS = 0 V), (VDD18 suspend current: BUSPWR=1, with out / with USB remote wakeup enabled in device) Table 17 - Power Supply Current
Timing Characteristics
I2C Memory Device Interface Timing
The I2C memory device interface supports the I2C "fast mode." Timing specifics are given below.
Thigh Tlow
SCL
TSU:STA THD:STA THD:DAT TSU:DAT TSU:STO
SDA OUT
TBUF TDSU
SDA IN
Figure 8 - I2C Memory Device Interface Timing
Parameter Clock high time Clock low time Start condition hold time Start condition setup time Data output hold time Data output setup time Stop condition setup time Required data valid before clock Bus free time Table 18 - I2C Memory Device Interface Timing
Symbol Thigh Tlow THD:STA TSU:STA THD:DAT TSU:DAT TSU:STO TDSU TBUF
Value 667 20 ns 1,333 20 ns 667 20 ns 667 20 ns 667 20 ns 667 20 ns 667 20 ns 84 ns 1,333 20 ns
46
In-System Design Confidential
ISD-200 ASIC Datasheet
USB Transceiver Timing Characteristics
The USS-725 USB transceiver complies with the timing and electrical requirements of the Universal Serial Bus Specification version 1.0.
ATA/ATAPI Port Timing Characteristics
All input signals on the ATA/ATAPI port are considered to be asynchronous, and are synchronized to the chip's internal system clock. All output signals are clocked using the chip's internal system clock, for which there is no external reference. Thus, the output signals should be considered asynchronous. PIO mode 0 (750 ns cycle time) shall be used during power on reset (POR) and for non-data register accesses. Following POR, the PIO mode used for data register accesses is specified in the ISD-200 configuration bytes.
Clock
Frequency Duty Cycle external crystal 12 MHz 0.25% n/a Note: Clock signal frequency is measured at VDD18/2 point. Rise and fall times should be 2 ns or less. Table 19 - Clock Requirements
Reset
The ISD-200 requires an off-chip power-on reset circuit. The supply voltage should be stable for a minimum of 1 ms prior to the release of nRESET.
In-System Design Confidential
47
ISD-200 ASIC Datasheet
Physical Diagrams
Figure 9 - Package Outline Diagram
48
In-System Design Confidential
ISD-200 ASIC Datasheet
Device Errata for First Silicon ISD-200 "0002"
This section identifies known problems with ISD-200 first silicon. Silicon revision information is obtained from a vendor specific USB descriptor request. ISD-200 first silicon returns the English Unicode string "0002" to the vendor specific request for string descriptor index 6. Second silicon returns "0003 for the same string. BCDDevice from internal ROM contents also indicates revision. First silicon returns \x0100 and second silicon returns \x0110. Follow on revisions of the ISD-200 will return different descriptor string values. Note the revision string may also be obtained by reading and decoding addresses 0x1390x13F from internal ROM contents.
1. CLKN output may initialize with unknown frequency with ASIC in reset
The DPLL circuitry is not asynchronously reset, and when the TEST pins are set to generate CLKN output prior to the DPLL configuration data load, spurious frequencies may be generated from the CLKN output prior to the state machines loading the correct DPLL m and n parameters. This anomaly only effects I_MODE operation. Setting the TEST pins for no CLKN generation and waiting for the configuration data load from EEPROM or on-board ROM eliminates the issue.
2. ATA_EN internal pull-up resistor is disabled during USB suspend operation
Internal logic incorrectly disables the internal pull-up resistor when the ISD-200 operates in USB suspend mode. The issue can be addressed with an external pull-up resistor.
3. EEPROM write operation fails on last byte of last page with some EEPROM devices
The ISD-200 always increments the address when checking status of the previous write operation. On page boundaries, address bits 10:8 (or the chip select portion of the address with typical 256 byte page devices) are incremented prior to the status phase of the last byte write operation. Vendors of I2C devices that treat this address / status phase data as "don't care" are compatible with the ISD-200. Vendors that do examine the address bits during the write completion check do not "ACK" the last write, as the address is now out of range for the device. The issue is addressed by not writing the last byte in the last EPROM page. In almost all applications only a portion of the serial memory is utilized, and the problem does not surface. String descriptors can easily be modified to accommodate the loss of one byte (if need be).
4. SCL output does not 3-state to hi-Z when `1', limiting SCL Vhi voltage to 3.3V
This issue may cause compatibility issues for certain EEPROM devices, as most data serial ROM data sheets report a Vhi voltage of 0.7*VCC requirement for correct operation. To operate at 400Khz (ISD-200 requirement), most devices require VCC set to 5V, which translates to a Vhi requirement of 0.7*5V=3.5V. "Catalyst" EEPROM's have been identified not to have the 0.7*VCC Vhi limitation. A field engineer states Catalyst's input stage triggers Vhi at .5*VCC, or 2.5V. Regression testing with Catalyst parts found Zero failures. If another vendor is chosen, Vhi switching requirements must be investigated to insure proper operation.
In-System Design Confidential
49
ISD-200 ASIC Datasheet
5. Current draw of 5-6 mA when ATA_EN = 0
The ATA cells are not powered down when ATA_EN is inactive. When enabled, the ATA cell active circuitry typically draws between 5-6 mA of quiescent current (all cells combined). Disabling the active circuitry reduces quiescent current to approximately 4 uA (note the inputs must be tied high or low to keep them out of their high current switching region). The TEST[3:0] inputs will place the ATA cells in low power mode if used in conjunction with ATA_EN. Setting TEST[3:0] = "1111" with ATA_EN = 0 will place the ATA cells in low power mode. Quiescent current will then be approximately 1 mA. This solution is compatible with rev B silicon (although not required).
6. USB Bus powered system support not possible with ISD-200 first silicon.
There are several issues that prevent the ISD-200 from supporting USB Bus powered systems. These issues only effect USB Bus powered operation. Brick powered system support is not effected. ISD-200 rev A silicon can only be used in brick powered systems. The rev B version of the ISD-200 will address the issues and thus support USB Bus powered system integration.
7. USB Interrupt pipe support required for Mac OS drivers / applications
Although the USB Interrupt endpoint in the ISD-200 always returns 0x00's when addressed, some software / drivers used with Mac OS version expect the endpoint for proper operation. This is not a HW issue with the ISD-200; it has been implemented as a work-around solution for legacy software issues. For legacy driver compatibility reasons, the interrupt endpoint should be reported in the ISD-200 USB descriptor information.
8. Support not provided for 16 byte ATAPI command block transfers
Previous revisions of this data sheet state the ISD-200 can support 16 byte ATAPI command blocks. The ATAPI Command Block Size configuration bits (configuration byte 0x05, bits[7:6]) must be set to "00", as only 12 byte ATAPI command block are supported by the ISD-200. Advertisement of this feature has been removed from the data sheet. The ISD-200 will not support 16 byte ATAPI command block sizes. No changes are planned for rev B silicon.
9. CLKN does not get the correct frequency in all cases
See Errata #101
10. Failure to override descriptors for slave device when BSY=0 and DRQ=1.
See Errata #102.
50
In-System Design Confidential
ISD-200 ASIC Datasheet
11. Possible hang in ATACB functionality.
See Errata #103.
In-System Design Confidential
51
ISD-200 ASIC Datasheet
Device Errata for Second Silicon ISD-200 "0003"
100. nATA_Reset, nDIOR, and nDIOW allow parasitic current draw during suspend
When suspended second silicon attempts to reduce suspend current and allow flexibility by three-stating the three control lines nATA_Reset, nDIOR, and nDIOW. The cells leak about 2-3 uA that hold the cells from going into a low power state. The extra 3.3v supply current per cell is around 200 uA when in this high current consumption state. When there is a 1.5k pull-down in place, the cell draw much less current. If all cells have been placed in the low current consumption state then total 3.3v supply current should be around 200 nA. A weak pull-up could also be used to pull these signals up to reduce the 3.3v supply current to about 12 uA.
101. CLKN does not get the correct frequency in all cases
The following table indicates the source of CLKN configuration. "X" means CLKN does not run. Note: Columns indicate a sequence of actions from left to right. Rows indicate configuration source and BUS_POWER pin state.
52
In-System Design Confidential
ISD-200 ASIC Datasheet POR, ATA_EN=0 ATA_EN=1 ATA_EN=1 BUS_POWER=0, ATA HIGH POWER=0(byte 8, bit 4) E^2 EE CLKN EE CLKN EE CLKN E^2 + Test pins EE CLKN EE CLKN EE CLKN Test pins Test CLKN Test CLKN Test CLKN I_MODE + Test Test CLKN Test CLKN Test CLKN pins BUS_POWER=1, ATA HIGH POWER=0(byte 8, bit 4) E^2 EE CLKN X EE CLKN E^2 + Test pins EE CLKN X EE CLKN Test pins Test CLKN X Test CLKN I_MODE + Test Test CLKN X Test CLKN pins BUS_POWER=0, ATA HIGH POWER=1(byte 8, bit 4) E^2 12MHz -> X X X E^2 + Test pins EE CLKN EE CLKN EE CLKN POR, ATA_EN=0 X Test CLKN Test CLKN FBh CLKN ATA_EN=1 ATA_EN=0
EE CLKN Test CLKN -> EE CLKN Test CLKN FBh CLKN
EE CLKN EE CLKN Test CLKN FBh CLKN
X X X X
EE CLKN EE CLKN Test CLKN FBh CLKN
X X X X
X Test CLKN
Test pins Test CLKN Test CLKN Test CLKN Test CLKN Test CLKN I_MODE + Test Test CLKN Test CLKN Test CLKN FBh CLKN FBh CLKN pins BUS_POWER=1, ATA HIGH POWER=1(byte 8, bit 4) E^2 X X X X X X E^2 + Test pins X X X X X X Test pins Test CLKN X Test CLKN X Test CLKN X I_MODE + Test Test CLKN X Test CLKN X FBh CLKN X pins Note: All values indicate CLKN output before USB Configuration is set. When ATA HIGH POWER=1 and BUS_POWER=1, the CLKN output will not turn on until the USB configuration is set to a non-zero value. Refer to the "BUS_POWER=1, ATA HIGH POWER=0" section in order to tell what the CLKN output will be when the USB Configuration is set.
EE CLKN Test CLKN -> EE CLKN Test CLKN FBh CLKN
EE CLKN EE CLKN
For devices using CLKN that allow ATA_EN to be deasserted, it is suggested that the BUS_POWER pin is deasserted in conjunction with ATA_EN if BUS_POWER is asserted itself. If a device uses both test pins and E^2 or FBh to configure CLKN then it is suggested that both CLKN values match. If a device is to use E^2 CLKN values then the test pins must be set to either CLKN test mode in order to get the expected value. If ATA_EN is allowed to deassert then there is the possibility that the test pin CLKN values will be used.
102. Failure to override descriptors for slave device when BSY=0 and DRQ=1.
This issue is regarding ISD200 Configuration byte 8 bit 3. This case will usually only occur when the device is a slave and there is a host side pull-down on DD7 and no pull-down on DD3. Is this case ISD200 will never enumerate. Potential fixes: 1. 2.
Pull-up on DD7 Pull-down on DD7 and DD3
In-System Design Confidential
53
ISD-200 ASIC Datasheet
103. Possible hang in ATACB functionality.
If bATACBTransferBlockCount is set to zero, PollAltStatOverride is set to one and the CBW DataTransferLength not zero, the ATACB state machine will hang. This should not be an issue if the bATACBTransferBlockCount is never set to zero or if there is never a data phase(CBW DataTransferLength=0) when PollAltStatOverride is set to one.
54
In-System Design Confidential
ISD-200 ASIC Datasheet Appendix A - Example EEPROM or FBh Data Contents
Address Field Name Description Example SROM / FBh Data 0x00 Data Signature (LSB) This field specifies the least significant byte of the Serial ROM/FBh signature. This register does not exist in HW (no POR values) This field specifies the most significant byte of the Serial ROM/FBh signature. This register does not exist in HW (no POR values) This field specifies the ATA event notification command. Setting this field to 0x00 disables this feature. POR configuration default of 0x00 This field denotes the parameters used by the internal DPLL. The original clock source is 12 MHz. 5 bits M (7:3), 2 bits N (2:1), 1 bit Enable (0). When enabled, multiply the original clock source by M, divided by N M: 00000 => M=1 00001 => M=1 00010 => M=2 00011 => M=3 .... 11111 => M=31 N: 00 => N=1 01 => N=3 10 => N=2 11 => N=4 Enable: 0 => CLK_N disabled 1 => CLK_N enabled POR configuration default of 0x00 This field specifies the time in multiples of 128 ms (0x19 = 3.2s) before the ISD-200 stops polling the Alternate Status device register for reset complete and restarts the reset process. NOTE: The ROM contents ATA Initialization Timeout value must be large enough to accommodate I_MODE operation during the first device initialization sequence (before FBh configuration data load) POR configuration default of 0x02 Reserved; set to `0' This bit specifies device number selection. "0" - Drive 0 "1" - Drive 1 This bit specifies that the ISD-200 perform a ATAPI DEVICE RESET command during a full initialization sequence. This field determines ATA Bus data access cycle times. 0000 reserved 0001 Mode 2 (292 ns) 0010 Mode 2 (333 ns) 0011 Mode 2 (375 ns) 0100 Mode 1 (458 ns) 0101 Mode 1 (500 ns) 0110 Mode 1 (542 ns) 0111 Mode 1 (583 ns) 1000 Mode 0 (625 ns) 1001 Mode 0 (666 ns) 1010 Mode 0 (708 ns) 1011 Mode 0 (750 ns) 1100 reserved 1101 reserved 1110 reserved 1111 reserved POR configuration default of 0x0B This field specifies the value in CBW CB field that designates if the CB is decoded as ATA commands instead of the ATAPI command block. POR configuration default of 0x00 0x52
0x01
Data Signature (MSB)
0x48
0x02
Event Notification
0xFC
0x03
DPLL Parameters
0x43
0x04
ATA Initialization Timeout
0x02
0x05
Reserved - Bits [7:6] Master/Slave Selection - Bit [5]
0x01
ATAPI DEVICE RESET - Bit [4] ATA Timing - Bits [3:0]
0x06
ATA Command Designator (Byte 0, LSB)
0x24
In-System Design Confidential
55
ISD-200 ASIC Datasheet
Address Field Name Description Example SROM / FBh Data 0x07 ATA Command Designator (Byte 1, MSB) Initialization Status - Bit[7] Configuration Descriptor 2 Present - Bit[6] This field specifies the value in CBW CB field that designates if the CB is decoded as ATA commands instead of the ATAPI command block. POR configuration default of 0x00 This (Read Only) bit denotes the Device Initialization Status. If set, indicates the device initialization sequence is active. This bit specifies that a second Configuration Descriptor is present. See "BUS_POWER pin" under the "Power Management" section. "0" - not present "1" - present This bit specifies that the ISD-200 skip device initialization. "0" - normal operation "1" - only reset the device prior to allowing USB enumeration. The function of this bit is overridden (0) if I_MODE is set. Notification command, descriptor override, SRST enable, ATAPI DEVICE RESET settings are irrelevant. Setting this bit indicates that when USB Bus powered, the system's ATA interface is only powered when the NPWR500 pin is active (not controlled by NPWR100). "0" - normal operation "1" - If (BUS_POWER = 1) and (USB configuration = 0) then ATA pads are put into low power mode, ATA control lines (RESET-, DIOR-, DIOW-) are 3-stated to hi-Z, and the remainder of the ATA lines(NCS(1:0), DA(2:0), DD(15:0), and IORDY_PU_EN) are driven low. (See Power Management) Setting this bit causes the ISD-200 to override the USB Descriptors for ATA devices. Not compatible with setting BUS_POWER=1. If set, (I_MODE = 0), AND (ATA device identified or device initialization fails), bDeviceClass returned as 0xFF bDeviceSubClass returned as 0x00 bDeviceProtocol returned as 0xFF bInterfaceClass returned as 0xFF bInterfaceSubClass returned as 0x00 bInterfaceProtocol returned as 0xFF idProduct bit 0 is replaced with a `1' (Suggested: even idProduct for ATAPI devices, odd numbers for ATA devices) else USB descriptor information unaltered This field denotes the (zero-based) maximum number of LUNs supported. POR configuration default of 0x30 Reserved; set to `0' This bit determines whether one or two configuration descriptors are made available to the host. This bit should not be set if the Configuration Descriptor 2 Present configuration bit is not set. "0" - Both descriptors are reported to the host if BUS_POWER=0 "1" - Report only the configuration descriptor that corresponds to state of the BUS_POWER input. Configuration 1 is returned when BUS_POWER=1, configuration 2 is returned when BUS_POWER=0 Setting this bit enables the SRST reset algorithm in the ISD-200. POR configuration default of 0x00 Address location for LANGID string (divided by 2). This index must be set to 0x00 if the string is not present. Address location for iManufacturer string (divided by 2). This index must be set to 0x00 if the string is not present. 0x24
0x08
0x40
Skip ATA / ATAPI Device Initialization - Bit[5]
ATA HIGH POWER Device for USB Bus Powered Devices - Bit[4]
Descriptor Override - Bit[3]
Last LUN Identifier - Bits[2:0]
0x09
Reserved - Bits[7:2] Report One Configuration - Bit[1]
0x02
SRST Enable - Bit[0] 0x0A 0x0B Language ID String (0) Manufacturer String (1)
0x28 0x2A
56
In-System Design Confidential
ISD-200 ASIC Datasheet
Address Field Name Description Example SROM / FBh Data 0x0C 0x0D 0x0E 0x0F Product String (2) Configuration 1 String (3) Interface 1 String (4) Serial Number String (5) Address location for iProduct string (divided by 2). This index must be set to 0x00 if the string is not present. Address location for iConfiguration string (divided by 2). This index must be set to 0x00 if the string is not present. Address location for iInterface string (divided by 2). This index must be set to 0x00 if the string is not present. Address location for iSerialNumber string (divided by 2). This index must be set to 0x00 if the string is not present. The USB Mass Storage Class Bulk Only Transport Specification requires a unique serial number. Address location for second iConfiguration 2 string (divided by 2). This index must be set to 0x00 if the string is not present. Address location for second iInterface 2 string (divided by 2). Length of device descriptor in bytes. Descriptor type. USB Specification release number in BCD. Device class. Device subclass. Device protocol. Maximum USB packet size supported Vendor ID. Product ID. Device release number in BCD. Index to manufacturer string. Index to product string. Index to serial number string. Number of configurations supported. The value to use as an argument to Set Configuration to select the configuration. Index to second configuration string. Maximum power consumption for the second configuration. Index to interface string associated with the second configuration descriptor. Length of configuration descriptor in bytes. Descriptor type. Number of bytes returned in this configuration. This includes the configuration descriptor plus all the interface and endpoint descriptors. Number of interfaces supported. The value to use as an argument to Set Configuration to select the configuration. Index to first configuration string. Device attributes for this configuration. Maximum power consumption for the second configuration. Length of interface descriptor in bytes. Descriptor type. Interface number. Alternate settings Number of endpoints Interface class. 0x30 0x37 0x3F 0x4C
0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33 0x34 0x35 0x36
Configuration 2 String (7) Interface 2 String (8) bLength bDescriptor Type bcdUSB (LSB) bcdUSB (MSB) bDeviceClass bDeviceSubClass bDeviceProtocol bMaxPacketSize idVendor (LSB) idVendor (MSB) idProduct (LSB) idProduct (MSB) bcdDevice (LSB) bcdDevice (MSB) iManufacturer iProduct iSerialNumber bNumConfigurations bConfiguration Value 2 iConfiguration 2 bMaxPower 2 iInterface 2 bLength bDescriptorType bTotalLength (LSB) bTotalLength (MSB) bNumInterfaces bConfiguration Value 1 iConfiguration 1 bmAttributes bMaxPower 1 bLength bDescriptorType bInterfaceNumber bAlternateSettings bNumEndpoints bInterfaceClass
0x61 0x6B 0x12 0x01 0x10 0x01 0x00 0x00 0x00 0x40 0xAB 0x05 0x30 0x00 0x00 0x01 0x01 0x02 0x05 0x01 0x00 0x00 0x00 0x00 0x09 0x02 0x27 0x00 0x01 0x01 0x00 0xE0 0x31 0x09 0x04 0x00 0x00 0x03 0x08
In-System Design Confidential
57
ISD-200 ASIC Datasheet
Address Field Name Description Example SROM / FBh Data 0x37 0x38 0x39 0x3A 0x3B 0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B 0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63 0x64 0x65 bInterfaceSubClass bInterfaceProtocol iInterface 1 bLength bDescriptorType bEndpointAddress bmAttributes wMaxPacketSize (LSB) wMaxPacketSize (MSB) bInterval bLength bDescriptorType bEndpointAddress bmAttributes wMaxPacketSize (LSB) wMaxPacketSize (MSB) bInterval bLength bDescriptorType bEndpointAddress bmAttributes wMaxPacketSize (LSB) wMaxPacketSize (MSB) bInterval Not used bLength bDescriptorType LANGID (LSB) LANGID (MSB) bLength bDescriptorType bString bString bString bString bString bString bString bString bString bString bLength bDescriptorType bString bString bString bString Manufacturer string descriptor length in bytes (restricted to 63 bytes or less). Descriptor type. "M" "NUL" "f" "NUL" "g" "NUL" "" "NUL" "X" "NUL" Product string descriptor length in bytes (restricted to 63 bytes or less). Descriptor type "P" "NUL" "r" "NUL" This is the polling interval. Not used since starting address must be even. LANGID string descriptor length in bytes. Descriptor type. Language supported. Does not apply to bulk endpoints. Length of this descriptor in bytes. Endpoint descriptor type. This is an Interrupt endpoint, endpoint number 3. This is an interrupt endpoint. Max data transfer size. Does not apply to bulk endpoints. Length of this descriptor in bytes. Endpoint descriptor type. This is an In endpoint, endpoint number 2. This is a bulk endpoint. Max data transfer size. Interface subclass. Interface protocol. Index to interface string associated with the first configuration descriptor. Length of this descriptor in bytes. Endpoint descriptor type. This is an Out endpoint, endpoint number 1. This is a bulk endpoint. Max data transfer size. 0x06 0x50 0x00 0x07 0x05 0x01 0x02 0x40 0x00 0x00 0x07 0x05 0x82 0x02 0x40 0x00 0x00 0x07 0x05 0x83 0x03 0x02 0x00 0x02 0x00 0x04 0x03 0x09 0x04 0x0C 0x03 0x4D 0x00 0x66 0x00 0x67 0x00 0x20 0x00 0x58 0x00 0x0E 0x03 0x50 0x00 0x72 0x00
58
In-System Design Confidential
ISD-200 ASIC Datasheet
Address Field Name Description Example SROM / FBh Data 0x66 0x67 0x68 0x69 0x6A 0x6B 0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B 0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83 0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B 0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93 bString bString bString bString bString bString bString bString bLength bDescriptorType bString bString bString bString bString bString bString bString bString bString bString bString bString bString bLength bDescriptorType bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString "o" "NUL" "d" "NUL" "" "NUL" "Y" "NUL" Configuration 1 string descriptor length in bytes (restricted to 63 bytes or less). Descriptor type "D" "NUL" "e" "NUL" "f" "NUL" "a" "NUL" "u" "NUL" "l" "NUL" "t" "NUL" Interface 1 (Configuration 1) string descriptor length in bytes (restricted to 63 bytes or less). Descriptor type "M" "NUL" "a" "NUL" "s" "NUL" "s" "NUL" "" "NUL" "S" "NUL" "t" "NUL" "o" "NUL" "r" "NUL" "a" "NUL" 0x6F 0x00 0x64 0x00 0x20 0x00 0x59 0x00 0x0E 0x03 0x44 0x00 0x65 0x00 0x66 0x00 0x61 0x00 0x75 0x00 0x6C 0x00 0x74 0x00 0x1A 0x03 0x4D 0x00 0x61 0x00 0x73 0x00 0x73 0x00 0x20 0x00 0x53 0x00 0x74 0x00 0x6F 0x00 0x72 0x00 0x61 0x00
In-System Design Confidential
59
ISD-200 ASIC Datasheet
Address Field Name Description Example SROM / FBh Data 0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B 0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3 0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB 0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3 0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB 0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 bString bString bString bString bLength bDescriptorType bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString "g" "NUL" "e" "NUL" Serial Number string descriptor length in bytes (restricted to 63 bytes or less). Descriptor type "0" "NUL" "1" "NUL" "2" "NUL" "3" "NUL" "4" "NUL" "5" "NUL" "6" "NUL" "7" "NUL" "8" "NUL" "9" "NUL" "0" "NUL" "1" "NUL" "2" "NUL" "3" "NUL" "4" "NUL" "5" "NUL" "6" "NUL" "7" "NUL" "8" "NUL" "9" "NUL" 0x67 0x00 0x65 0x00 0x2A 0x03 0x30 0x00 0x31 0x00 0x32 0x00 0x33 0x00 0x34 0x00 0x35 0x00 0x36 0x00 0x37 0x00 0x38 0x00 0x39 0x00 0x30 0x00 0x31 0x00 0x32 0x00 0x33 0x00 0x34 0x00 0x35 0x00 0x36 0x00 0x37 0x00 0x38 0x00 0x39 0x00
60
In-System Design Confidential
ISD-200 ASIC Datasheet
Address Field Name Description Example SROM / FBh Data 0xC2 0xC3 0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB 0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3 0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB 0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3 0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB 0xEC 0xED bLength bDescriptorType bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bLength bDescriptorType bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString bString Configuration 2 string descriptor length in bytes (restricted to 63 bytes or less). Descriptor type "L" "NUL" "o" "NUL" "w" "NUL" "" "NUL" "P" "NUL" "o" "NUL" "w" "NUL" "e" "NUL" "r" "NUL" Interface 2 (Configuration 2) string descriptor length in bytes (restricted to 63 bytes or less). Descriptor type "B" "NUL" "u" "NUL" "s" "NUL" "" "NUL" "P" "NUL" "o" "NUL" "w" "NUL" "e" "NUL" "r" "NUL" "e" "NUL" "d" "NUL" 0x0E 0x03 0x4C 0x00 0x6F 0x00 0x77 0x00 0x20 0x00 0x50 0x00 0x6F 0x00 0x77 0x00 0x65 0x00 0x72 0x00 0x0E 0x03 0x42 0x00 0x75 0x00 0x73 0x00 0x20 0x00 0x50 0x00 0x6F 0x00 0x77 0x00 0x65 0x00 0x72 0x00 0x65 0x00 0x64 0x00
In-System Design Confidential
61
ISD-200 ASIC Datasheet
Address Field Name Description Example SROM / FBh Data 0xEE - 0x1FF (SROM), 0x13F (FBh) Not used Available SROM space / unused FBh space 0xXX
Table 20 - Example Serial ROM / FBh Data
62
In-System Design Confidential


▲Up To Search▲   

 
Price & Availability of ISD-200

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X